我想从我的应用程序中清除所有 webview 数据。我正在执行以下操作:
WebViewDatabase wvd = WebViewDatabase.getInstance(context);
if (wvd != null) {
try {
wvd.clearUsernamePassword(); <-- throws an uncatchable exception
} catch (Exception ex) {
Log.e(TAG, "nope!", ex);
}
}
clearUsernamePassword() 行抛出异常,上面的 try / catch 没有捕获到它:
native_execute (step): errno = 2, error message = No such file or directory, handle = 0x47ec78
clearUsernamePassword Storage full, abort doing SQLite operation.
android.database.sqlite.SQLiteDiskIOException: error code 10: disk I/O error
at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1721)
at android.webkit.WebViewDatabase.clearUsernamePassword(WebViewDatabase.java:1278)
我们应该在这里做什么?
谢谢
- - - - 更新 - - - - -
这是导致它的方法的链接(它不是我的,它是 android 的一部分):http: //developer.android.com/reference/android/webkit/WebViewDatabase.html#clearUsernamePassword ()
实际上,我从 WebViewDatabase 的不同方法中得到了一些这样的例外(该应用程序有很多下载,因此我看到的量很大。我实际上最终能够在设备上重现它)。
上面的代码没有在单独的线程上运行。