这个错误是啥意思?

Posted

技术标签:

【中文标题】这个错误是啥意思?【英文标题】:what does this error means?这个错误是什么意思? 【发布时间】:2014-11-06 06:07:29 【问题描述】:

我在很多设备上遇到了很多崩溃,但在我的设备(lg p920)上它工作正常。以下报告来自 goggle play 我的应用程序崩溃并收到 6 份报告。顺便说一句,我使用 sql 预先创建的数据库。还创建了 android_metadata 表和语言环境 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)

【问题讨论】:

发帖1312@MainActivity 1312 ?代码190行 你有没有初始化你的 dbHelper 变量。 db = dbHelper.getWritableDatabase(); 你用过什么库吗? offline.sinhaladic.com.MainActivity.sugen(MainActivity.java:1312)? 这是 MainActivity.java sinhaladic.com/te/MainActivity.java 这是 DatabaseHelper.java sinhaladic.com/te/DatabaseHelper.java 【参考方案1】:

参考:https://***.com/a/4828540/1318946

弹出的一个想法是硬编码路径 数据库文件位于。 DB_PATH = “/data/data/YOUR_PACKAGE/databases/”;

我猜这个路径可能在 Android 2.2.1 上无效 渴望高清。我交换了这条路径:Environment.getDataDirectory() + “/data/YOUR_PACKAGE/databases/” + DB_NAME;

当我有机会在 我自己的实际电话。如果有人测试此解决方案,请告诉我 如果解决了。

【讨论】:

【参考方案2】:

这不是您会看到的常见错误。在某些内部内存不足的设备上很少发生这种情况。当您的应用程序尝试写入数据库时​​,它耗尽了内部内存并且无法写入。您可以做的是检查可用存储空间,如果它真的降为零,请通知用户。

【讨论】:

【参考方案3】:

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 错误的异常。

参考:SQLiteDiskIOException。

【讨论】:

以上是关于这个错误是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

这个 NSZombie 错误消息是啥意思?

Django插入:这个错误是啥意思

这个 MSVC++ 编译错误是啥意思

这个错误在 nhibernate 中是啥意思

这个错误是啥意思?

嗨,只想知道这个错误是啥意思