0

私はBugSenseを使用してアプリのエラーを追跡していますが、SQLiteに関連するエラーを検出しました...問題はSQLiteを使用していないことです。私はsharedPreferencesとadsを使用していますが、SQLiteはまったく使用していません...

なぜこうなった?SDカードが不良ですか、それともスペースがありませんか?万が一に備えて、sharedPreferencesコードをtry catchブロックで囲む必要がありますか?

スタックトレースは次のとおりです。

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 android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1043)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1036)
at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:771)
at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:215)
at android.webkit.WebViewDatabase.initDatabase(WebViewDatabase.java:227)
at android.webkit.WebViewDatabase.init(WebViewDatabase.java:209)
at android.webkit.WebViewDatabase.access$000(WebViewDatabase.java:38)
at android.webkit.WebViewDatabase$1.run(WebViewDatabase.java:190) 

そしてBugSenseからのより多くのデータ:

ここに画像の説明を入力してください

4

2 に答える 2

3

なぜこうなった?

を使用していてWebView、SQLiteを内部で使用しています(キャッシュIIRC用)。ディスクI/Oエラーが発生する理由については、目の前の情報を考えると、確実に言うのは難しいです。

SDカードが不良ですか、それともスペースがありませんか?

WebViewデータベースを内部ストレージに保存するので、悪いSDカードにはなりません。

内部ストレージが不足していることは確かに可能です。

万が一に備えて、sharedPreferencesコードをtry catchブロックで囲む必要がありますか?

これはあなたとは何の関係もないのでSharedPreferences、私はそれが役立つとは思えません。

さらに、これが頻繁に発生するのを確認しない限り、デバイス固有の問題(たとえば、内部ストレージの不足)であると思います。

于 2013-03-13T23:28:51.480 に答える
0

同じウィンドウ内で3つ以上のWebビューを使用すると、SQLiteDiskIOExceptionが発生する可能性があることがわかりました。したがって、アクティビティでは単一のWebビューを使用することをお勧めします

于 2013-12-05T03:44:05.453 に答える