Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 引入AdMob后出现WebView/webcore错误_Android_Android Webview_Admob - Fatal编程技术网

Android 引入AdMob后出现WebView/webcore错误

Android 引入AdMob后出现WebView/webcore错误,android,android-webview,admob,Android,Android Webview,Admob,我刚刚在我的一项活动中添加了AdMob的建议。添加此视图后,活动开始时会出现一些明显的延迟。在LogCat中,我看到以下异常。它不会导致应用程序停止,但会显示为警告: W/webcore(12969): java.lang.Throwable: EventHub.removeMessages(int what = 107) is not supported before the WebViewCore is set up. W/webcore(12969): at android.webki

我刚刚在我的一项活动中添加了AdMob的建议。添加此视图后,活动开始时会出现一些明显的延迟。在LogCat中,我看到以下异常。它不会导致应用程序停止,但会显示为警告:

W/webcore(12969): java.lang.Throwable: EventHub.removeMessages(int what = 107) is not supported before the WebViewCore is set up.
W/webcore(12969):   at android.webkit.WebViewCore$EventHub.removeMessages(WebViewCore.java:2207)
W/webcore(12969):   at android.webkit.WebViewCore$EventHub.access$10000(WebViewCore.java:1167)
W/webcore(12969):   at android.webkit.WebViewCore.removeMessages(WebViewCore.java:2454)
W/webcore(12969):   at android.webkit.WebView.sendOurVisibleRect(WebView.java:3383)
W/webcore(12969):   at android.webkit.ZoomManager.setZoomScale(ZoomManager.java:776)
W/webcore(12969):   at android.webkit.ZoomManager.access$1900(ZoomManager.java:60)
W/webcore(12969):   at android.webkit.ZoomManager$PostScale.run(ZoomManager.java:1372)
W/webcore(12969):   at android.os.Handler.handleCallback(Handler.java:608)
W/webcore(12969):   at android.os.Handler.dispatchMessage(Handler.java:92)
W/webcore(12969):   at android.os.Looper.loop(Looper.java:156)
W/webcore(12969):   at android.app.ActivityThread.main(ActivityThread.java:5109)
W/webcore(12969):   at java.lang.reflect.Method.invokeNative(Native Method)
W/webcore(12969):   at java.lang.reflect.Method.invoke(Method.java:511)
W/webcore(12969):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:991)
W/webcore(12969):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)
W/webcore(12969):   at dalvik.system.NativeStart.main(Native Method)
W/webcore(12969): java.lang.Throwable: EventHub.removeMessages(int what = 105) is not supported before the WebViewCore is set up.
W/webcore(12969):   at android.webkit.WebViewCore$EventHub.removeMessages(WebViewCore.java:2207)
W/webcore(12969):   at android.webkit.WebViewCore$EventHub.access$10000(WebViewCore.java:1167)
W/webcore(12969):   at android.webkit.WebViewCore.removeMessages(WebViewCore.java:2454)
W/webcore(12969):   at android.webkit.WebView.sendViewSizeZoom(WebView.java:3619)
W/webcore(12969):   at android.webkit.ZoomManager.setZoomScale(ZoomManager.java:782)
W/webcore(12969):   at android.webkit.ZoomManager.access$1900(ZoomManager.java:60)
W/webcore(12969):   at android.webkit.ZoomManager$PostScale.run(ZoomManager.java:1372)
W/webcore(12969):   at android.os.Handler.handleCallback(Handler.java:608)
W/webcore(12969):   at android.os.Handler.dispatchMessage(Handler.java:92)
W/webcore(12969):   at android.os.Looper.loop(Looper.java:156)
W/webcore(12969):   at android.app.ActivityThread.main(ActivityThread.java:5109)
W/webcore(12969):   at java.lang.reflect.Method.invokeNative(Native Method)
W/webcore(12969):   at java.lang.reflect.Method.invoke(Method.java:511)
W/webcore(12969):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:991)
W/webcore(12969):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)
W/webcore(12969):   at dalvik.system.NativeStart.main(Native Method)

我还注意到,这只发生在应用程序第一次运行时。当我关闭应用程序并再次启动时,它不会重复。但是初始运行对于用户体验非常重要,所以我认为这仍然是一个重要的问题。有什么想法吗?

几乎可以肯定,这与WebView(AdView使用)创建内部数据库有关,它只在应用程序中第一次使用WebView时才这样做

它曾经在姜饼(Android 2.3)上特别引人注目

为了缓解这种情况,我会在应用程序第一次启动时以编程方式创建一个WebView,同时显示启动屏幕。确保在UI线程上创建它(使用处理程序等)

类似于(在活动#onCreate中):


请在主要活动的onCeate中详细解释,使用处理程序以编程方式创建WebView(使其异步但仍在UI线程上)。这将导致初始化全局WebView数据库,以便后续WebView的使用(如在AdView中)不会被长时间阻止。您能否提供我的代码,这会非常干扰我,也会影响移动设备的处理
runOnUiThread(new Runnable() {
  void run() {
    new WebView(MyActivity.this);
  }
});