我們有一個跨平臺移動應用程序,它使用本機庫來讀取一些數據(除其他外)。在Android上,數據位於使用Expansion APK機制的obb文件中。這對我們來說工作得很好。但是,我們發現在第二代(2013)Nexus 7表和Nexus 5手機上,我們正在讀取obb中已損壞的一些數據。實際的obb文件沒有被破壞,但我們從中讀取的是。在Nexus設備上從掛載的obb文件中讀取損壞的數據
我最好的例子是用WebView從掛載的obb中讀取HTML文件。 HTML的第一部分會很好,然後在第二部分中會出現亂碼。有趣的是,胡言亂語可以從obb中的其他地方識別爲二進制數據。這幾乎就像讀取obb的Android代碼獲取塊映射錯誤。
我已經縮小到由某些C觸發的代碼從obb中讀取對象。如果我對此發表評論,當我稍後訪問它時,HTML將會很好。現在有可能在代碼中存在錯誤,但是這個庫已經在其他兩個平臺上使用,沒有問題。它也適用於第一代Nexus 7和其他非Nexus設備。
那麼,有沒有人有任何想法,這可能是什麼?這些Nexus設備上的Android 4.3.x和Android 4.4.x似乎都會發生這種情況。什麼可能是不同的硬件方面,可能會導致這種腐敗?我認爲像C庫與Android並沒有內置到固件的某種?
我對此查詢沒有任何迴應。我已經證明幾乎可以肯定,這是第二代Nexus掛載obb文件中的一個錯誤。我可以將其縮小到JNI中引起損壞的2字節的簡單fread。向Android開發者報告這種情況的最佳方式是什麼?理想情況下,我希望與他們進行對話以詢問可能的解決辦法。 – btschumy
我不確定這是否相關,但在我的情況下,我從SD卡(我的應用程序創建的)中拖出一個zip文件,在某些情況下,文件在拖動過程中變爲損壞關閉SD卡。它在設備上沒有損壞,因爲我可以讀取的是與Android Zip APIs一樣好,只是當我將它從設備上拖出時。如果我通過文件管理器應用程序將它傳輸到網絡共享,那麼一切都很好,並且沒有損壞。當然,這似乎是一個設備問題!順便說一下,我正在使用nexus 7 4.4.4。 – Andy
我遇到過使用cocos2d-x製作的遊戲時遇到的同樣的問題,在安裝OBB文件時,應用程序將隨着資源加載而隨機崩潰。有沒有人能夠克服這個錯誤? –