出于某种原因,在将OTA更新到2.2.1(1.72.405.3)之后,this article中描述的数据库处理解决方案在HTC Desire HD上不起作用.它在更新之前在Desire HD上工作,我无法在运行2.1,2.2的实际设备以及运行所有版本的模拟器中重现错误.
不幸的是你无法为运行AndroID 2.2.1的模拟器创建一个AVD,我已经尝试了基于2.2.1的ROM(我有一个普通的HTC Desire)但我的应用程序也没有问题.所以问题是,如果它以某种方式使用AndroID SDK,它不应该突然导致问题吗?
我知道这是一个非常具体的问题,但由于更多的开发人员比我报告问题以及你无法创建AVD的事实我希望这个问题被接受,我希望有人知道可能导致问题的原因.
这是用户发送到我的市场帐户的堆栈跟踪:
Caused by: androID.database.sqlite.sqlitediskIOException: disk I/O errorat 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)
相关方法可以在pastebin中找到.由于只能包含一个超链接,因此可以在下面的评论中找到链接.请注意,堆栈跟踪中的第81行是pastebin的第10行.
解决方法:
我似乎终于让我的应用程序在Desire HD上运行AndroID 2.2.1.我没有机会对其进行个人调试,以确切了解导致问题的原因.
d出的一个想法是数据库文件所在的硬编码路径.
DB_PATH =“/ data / data / YOUR_PACKAGE / databases /”;
我想这条路径可能在AndroID 2.2.1上对Desire HD无效.我用这条路交换了:
Environment.getDataDirectory()“/ data / YOUR_PACKAGE / databases /”DB_name;
当我有机会亲自在实际手机上进行测试时,我会试着指出问题.如果有人测试此解决方案,请告诉我它是否解决了.
总结以上是内存溢出为你收集整理的数据库处理在Android 2.2.1上停止工作(Desire HD 1.72.405.3)全部内容,希望文章能够帮你解决数据库处理在Android 2.2.1上停止工作(Desire HD 1.72.405.3)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)