2014-11-06 3 views
0

У меня много сбоев на множестве устройств, но на моем устройстве (lg p920) работает нормально. ниже отчет из игры goggle, мое приложение разбилось и получило 6 отчетов. кстати, я использую sql pre created database.and также создал таблицу 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) 
+0

post line 1312 @ 'MainActivity' –

+0

1312? есть 190 строк по коду – user3680498

+0

Вы инициализировали свою переменную dbHelper. 'db = dbHelper.getWritableDatabase();' –

ответ

0

Ссылка: https://stackoverflow.com/a/4828540/1318946

Одна мысль, что выскочило это жёстко путь, где файл база данных находится. DB_PATH = "/ data/data/YOUR_PACKAGE/databases /";

Возможно, этот путь недействителен для Android 2.2.1 для Desire HD. Я обменял этот путь с помощью: Environment.getDataDirectory() + "/ data/YOUR_PACKAGE/databases /" + DB_NAME;

Я попытаюсь указать проблему, когда у меня была возможность испытать на самом фактическом телефоне . Если кто-нибудь проверит это решение, сообщите мне , если он решает его.

0

Это не обычная ошибка, которую вы увидите. Это может случиться редко на некоторых устройствах с низкой внутренней памятью. Пока ваше приложение пыталось написать в БД, у него закончилась внутренняя память и не удалось написать. Что вы можете сделать, это проверить доступное хранилище и, если оно действительно снизится до нуля, уведомить пользователя.

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 

Исключение, которое указывает, что ошибка IO произошло во время доступа к файлу базы данных SQLite.

Справка: SQLiteDiskIOException.