在设置WebViewCore之前,不支持Android:EventHub.removeMessages(int what=107)

在设置WebViewCore之前,不支持Android:EventHub.removeMessages(int what=107),android,android-widget,android-webview,webviewclient,Android,Android Widget,Android Webview,Webviewclient,我已经在Dialog活动中实现了WebView,我正在将简单的url加载到 网络视图 我的Webview设置如下所示 wbView = (WebView) findViewById(R.id.wbView); wbView.setKeepScreenOn(true); wbView.getSettings().setJavaScriptEnabled(true); wbView.getSettings().setDomStorageEnabled(

我已经在Dialog活动中实现了WebView,我正在将简单的url加载到 网络视图

我的Webview设置如下所示

wbView = (WebView) findViewById(R.id.wbView);
        wbView.setKeepScreenOn(true);
        wbView.getSettings().setJavaScriptEnabled(true);
        wbView.getSettings().setDomStorageEnabled(true);
        wbView.getSettings().setBuiltInZoomControls(true);
        wbView.setInitialScale(100);
        // wbView.getSettings().setUseWideViewPort(true);
        wbView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
        wbView.setWebViewClient(new MyWebViewClient());
MyWebViewClient()包含

我正在从同一webview中的资源加载两个HTML文件,虽然工作正常,但无法加载动态url

我在谷歌上搜索并找到一些帖子

我的航海日志告诉我

05-09 13:33:30.187: W/webcore(20054): java.lang.Throwable: EventHub.removeMessages(int what = 107) is not supported before the WebViewCore is set up.
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.WebViewCore$EventHub.removeMessages(WebViewCore.java:1683)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.WebViewCore$EventHub.access$7900(WebViewCore.java:926)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.WebViewCore.removeMessages(WebViewCore.java:1795)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.WebView.sendOurVisibleRect(WebView.java:2917)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.ZoomManager.setZoomScale(ZoomManager.java:593)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.ZoomManager.access$1700(ZoomManager.java:49)
05-09 13:33:30.187: W/webcore(20054):   at android.webkit.ZoomManager$PostScale.run(ZoomManager.java:984)
05-09 13:33:30.187: W/webcore(20054):   at android.os.Handler.handleCallback(Handler.java:605)
05-09 13:33:30.187: W/webcore(20054):   at android.os.Handler.dispatchMessage(Handler.java:92)
05-09 13:33:30.187: W/webcore(20054):   at android.os.Looper.loop(Looper.java:137)
05-09 13:33:30.187: W/webcore(20054):   at android.app.ActivityThread.main(ActivityThread.java:4424)
05-09 13:33:30.187: W/webcore(20054):   at java.lang.reflect.Method.invokeNative(Native Method)
05-09 13:33:30.187: W/webcore(20054):   at java.lang.reflect.Method.invoke(Method.java:511)
05-09 13:33:30.187: W/webcore(20054):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-09 13:33:30.187: W/webcore(20054):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-09 13:33:30.187: W/webcore(20054):   at dalvik.system.NativeStart.main(Native Method)
建议我应该做的改变

更新

我发现如果我传递任何像“www.facebook.com”这样的url,那么它会给我这个错误,
但如果我把它换成“https://www.facebook.com“那么它工作正常。

我发现的问题是因为url没有
http://
https://
。因此,如果url不包含
http://
https://

则我附加了此标记。问题通常与指向的url未找到有关。它是404(即未找到的URL)。修改URL

在我的例子中,我通过更改顺序来修复它。我将loadUrl放在getSettings()之前

下面的工作片段

mWebView = (WebView) findViewById(R.id.web_view);

// load file
mWebView.loadUrl(SERVER_URL);
mWebView.getSettings().setJavaScriptEnabled(true);

希望这对某人有所帮助。

在我的LogCat的最后几天中,我有时会看到这个堆栈,但直到现在它还没有阻止我的开发。但我怀疑它与我的WebView有时遇到的困难有关。 这似乎是一个不仅影响我们的错误:


队列
mMessages
必须为空以避免异常

// Message queue for containing messages before the WebCore thread is ready.
所以很简单:有些事情导致WebCore需要更多的时间来设置。根据107是“SET\u SCROLL\u OFFSET”,堆栈跟踪显示ZoomManger,我将在启动设置时检查代码中是否有内容导致视图以某种方式处于活动状态


答复: 如果调用
requestWindowFeature(Window.FEATURE\u NO\u TITLE)
然后等待调用
setContentView()
太久,将引发此异常。你能等多久我不知道。因此,从现在起,这两行将成为
onCreate()
中的第一行。时间会证明我是对的

好消息是,这个标记为
webcore
的警告只是一个警告,本身不会对应用程序的其余部分造成影响


坏消息是,我的问题似乎与此无关,而是来自其他地方。

在调用
finish()
并重新启动相同的
活动后,我遇到了同样的问题。因此,可能它不能简单地用
WebView
完成活动。在完成活动之前,我做了以下几点,效果很好

try{
        webView.stopLoading();
        ViewGroup parent = (ViewGroup)webView.getParent();
        parent.removeView(webView);
        webView.destroy();
}catch(Exception e){
        Log.e(TAG, "clear webView fail");
        e.printStackTrace();
}
 finish();

如果你试图将一个javascript:url加载到一个不存在的页面中,你也会看到这个错误。我刚刚在东芝AT300(Android 4.0.3)上遇到了同样的问题,因为url上有一个尾随斜杠:我遇到了同样的问题。使用
WebView.loadUrl(“http:///www.google.com");工作。但是,只要我尝试
WebView.loadUrl(“file:///android_asset/html5video.html");它显示异常/facepalm@VishalKhakhkhar如果需要加载“HTML”类型的字符串呢?
// Message queue for containing messages before the WebCore thread is ready.
try{
        webView.stopLoading();
        ViewGroup parent = (ViewGroup)webView.getParent();
        parent.removeView(webView);
        webView.destroy();
}catch(Exception e){
        Log.e(TAG, "clear webView fail");
        e.printStackTrace();
}
 finish();