Sve*_*ing 9 sqlite android webkit exception webview
我已经获得SQLiteDiskIOExceptions的报告已经有一段时间了(通过Flurry/acra).我无法在本地重现这个问题,但这是我最常见的崩溃,在糟糕的一天发生了五十次一次.它们在Android 2.3.x下似乎特别频繁.
我在自己的代码中完全没有使用SQL,但是我同时运行了多个WebView(两个,加上一个广告SDK).所有错误似乎都是由WebView引起的,通过以下任何一种方法:
(还收到了几个关于android.database.sqlite.SQLiteDatabaseCorruptException的报告,但这些都非常罕见).我在我自己的代码中注释掉了与清除WebView缓存相关的任何内容,但这没有帮助.
有谁知道我可以预防,捕捉或更清楚地隔离这些例外的原因的任何方式?它们太频繁而不仅仅是由坏的SD内存引起的.
谢谢!
编辑:请求的源代码:
browser=(WebView)findViewById(R.id.webkit);
browser.setWebViewClient( new CustomWebViewClient(this,browser) );
WebSettings webSettings = browser.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginsEnabled(true);
browser.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
webSettings.setBuiltInZoomControls(true);
browser.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
progressbarhorizontal.setProgress(progress);
}
});
Run Code Online (Sandbox Code Playgroud)
XML:
<WebView android:id="@+id/webkit" android:layout_width="fill_parent" android:layout_height="fill_parent" android:focusable="true" android:nextFocusDown="@+id/bottomview"></WebView>
Run Code Online (Sandbox Code Playgroud)
小智 3
我也在努力寻找这些错误的确切根源。我在 Google Groups AdMob 论坛上发现了一个帖子,表明它可能与 AdMod SDK 有关。对我来说,这些错误是在我发布最新更新后开始出现的,其中包括将 AdMob SDK 从 v4.1.1 升级到 v4.3.1。您在使用 AdMob 吗?
似乎 AdMob SDK 在某些情况下会脱离 UI 线程来操作其 WebView,我猜这可能会导致各种问题,例如在管理缓存时从不同线程进行并发 SQLite 访问。可能与Android 中的 SQLiteDiskIOException有关。可能还值得检查您自己的代码是否不会在 UI 线程之外操作 WebView。
| 归档时间: |
|
| 查看次数: |
1987 次 |
| 最近记录: |