2011-01-10 63 views
8

出於某種原因,this article中描述的數據庫處理解決方案在OTA更新爲2.2.1(1.72)後無法在HTC Desire HD上工作.405.3)。它在更新之前在Desire HD上工作,我無法在運行2.1,2.2的實際設備以及運行所有版本的仿真器上重現錯誤。數據庫處理在Android 2.2.1上停止工作(Desire HD 1.72.405.3)

不幸的是,你不能創建一個運行Android 2.2.1的模擬器的AVD,並且我已經嘗試了基於2.2.1的ROM(我有一個根深蒂固的普通HTC Desire),但是我的應用程序沒有問題。所以問題是,如果它以某種方式使用Android SDK,它不應該一下子引起問題?

我知道這是一個非常具體的問題,但由於更多的開發人員比我報告的問題以及事實,你不能創建一個AVD我希望這個問題被接受,我希望有人有線索可能造成什麼問題。

這是一個被用戶發送到我的電子市場帳戶的堆棧跟蹤:

Caused by: android.database.sqlite.SQLiteDiskIOException: disk I/O error 
at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method) 
at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:2049) 
at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1917) 
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:889) 
at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:168) 
at com.MyApp.DataBaseHelper.createDataBase(DataBaseHelper.java:81) 
at com.MyApp.InitialActivity.onCreate(InitialActivity.java:33) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2797) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1066) 

相關方法可以在引擎收錄找到。由於只能包含一個超鏈接,因此可以在下面的評論中找到鏈接。請注意,在堆棧跟蹤中找到的第81行是pastebin中的第10行。

+0

http://pastebin.com/VTmCkeLq – 2011-01-10 21:40:26

回答

5

我終於看到我的應用程序在Desire HD上的Android 2.2.1上工作。我沒有機會親自進行調試,試試究竟是什麼導致了問題。

彈出一個想法是數據庫文件所在的硬編碼路徑。 DB_PATH =「/ data/data/YOUR_PACKAGE/databases /」;

我想這是可能的,這個路徑不適用於Android 2.2.1的Desire HD。我通過以下方式交換了此路徑: Environment.getDataDirectory()+「/ data/YOUR_PACKAGE/databases /」+ DB_NAME;

當我有機會在自己的實際電話上進行測試時,我會試着指出問題。如果有人測試此解決方案,請告訴我是否解決問題。

0

以及來自比約恩的出色答卷,該鏈接爲我工作:

Link on AndDev.org

看來你必須specificly關閉this.getReadableDatabase的回報();