0

我想从我的应用程序中清除所有 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 的不同方法中得到了一些这样的例外(该应用程序有很多下载,因此我看到的量很大。我实际上最终能够在设备上重现它)。

上面的代码没有在单独的线程上运行。

4

0 回答 0