我在很多设备上遇到了很多崩溃,但是在我的设备上(lg p920)它运行正常。以下报告来自护目镜播放我的应用程序崩溃并获得6个报告。顺便说一句,我使用sql预创建的数据库。还创建了android_metadata表和locale en_US也插入到该数据库。
这是堆栈跟踪:
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:2074)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1014)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:962)
at offline.sinhaladic.com.MainActivity.sugen(MainActivity.java:1312)
at offline.sinhaladic.com.MainActivity$7.afterTextChanged(MainActivity.java:972)
at android.widget.TextView.sendAfterTextChanged(TextView.java:7665)
at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:8067)
at android.text.SpannableStringBuilder.sendTextHasChanged(SpannableStringBuilder.java:900)
at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:353)
at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:266)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:443)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:420)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:29)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:663)
at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:425)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:333)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:77)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
这不是您会看到的常见错误。在内存较低的某些设备上很少发生这种情况。当您的应用程序尝试写入数据库时,它内存不足并无法写入。您可以做的是检查可用存储,如果它真的下降到零,则通知用户。
答案 1 :(得分:0)
<强> SQLiteDiskIOException 强>
java.lang.Object
↳ java.lang.Throwable
↳ java.lang.Exception
↳ java.lang.RuntimeException
↳ android.database.SQLException
↳ android.database.sqlite.SQLiteException
↳ android.database.sqlite.SQLiteDiskIOException
表示访问SQLite数据库文件时发生IO错误的异常。
答案 2 :(得分:0)
参考:https://stackoverflow.com/a/4828540/1318946
弹出的一个想法是硬编码的路径 数据库文件位于。 DB_PATH = “/数据/数据/ YOUR_PACKAGE /数据库/”;
我想这条路径可能在Android 2.2.1上无效 欲望高清。我用以下方法交换了这条路径:Environment.getDataDirectory() +“/ data / YOURPACKAGE / databases /”+ DB_NAME;
当我有机会测试时,我会试着指出问题 实际的手机自己。如果有人测试此解决方案,请告诉我 如果它解决了它。