Android 带有内置oomcontrols的WebView引发异常和崩溃

Android 带有内置oomcontrols的WebView引发异常和崩溃,android,android-webview,Android,Android Webview,我正在使用启用内置oomcontrols的WebView。我可以在WebView中正确查看数据,也可以使用缩放控件缩放数据。但当我点击后退移动到上一个屏幕时,我得到异常和应用程序崩溃。(如果我不使用缩放控件,它可以正常工作。我的意思是在WebView中启用了缩放控件,但我没有使用,只是查看了WebView内容并单击了“上一步”。) 网络视图: mWebView.getSettings().setBuiltInZoomControls(true); mWebView.getSettings().s

我正在使用启用内置oomcontrols的WebView。我可以在WebView中正确查看数据,也可以使用缩放控件缩放数据。但当我点击后退移动到上一个屏幕时,我得到异常和应用程序崩溃。(如果我不使用缩放控件,它可以正常工作。我的意思是在WebView中启用了缩放控件,但我没有使用,只是查看了WebView内容并单击了“上一步”。)

网络视图:

mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setPluginState(PluginState.ON);
例外情况:

Activity com.web.ui.DetailActivity has leaked window android.widget.ZoomButtonsController$Container@4110c4e0 that was originally added here
.....

FATAL EXCEPTION: main
E/AndroidRuntime(670): java.lang.IllegalArgumentException: Receiver not registered: android.widget.ZoomButtonsController$1@4110c2d0

....
关于活动,我还补充了以下内容:

mWebView.getSettings().setBuiltInZoomControls(false);
你知道会有什么问题吗。我需要帮助

谢谢

一定要

setVisible(false);

在调用webView对象上的super或destroy()之前,请先使用onDestroy()。

我也遇到了同样的问题。我在三秒钟后调用WebView.destroy()修复了它(直到缩放控件的动画完成)


我也遇到了同样的问题,并尝试了给出的解决方案,但我总是遇到例外。 唯一对我有效的代码是

public void onDetachedFromWindow(){
    super.onDetachedFromWindow();
    setVisible(false);
}

然而,我仍然不明白为什么
setVisible(false)
onDestroy()
中不起作用。如果有人知道一个解释,如果你能发表/评论,我会非常感激

将此添加到您的活动中:

@Override
public void finish() {
    ViewGroup view = (ViewGroup) getWindow().getDecorView();
    view.removeAllViews();
    super.finish();
}

删除
mWebView.getSettings().SetBuilTinZoomControl(false)从您的
onDestory()
。“你不需要取消设置它吗?”托尔加普我已经删除了它,但它仍然抛出异常。但为什么会发生这种情况?这对我来说很有效。我不是将这段代码放在活动中,而是将它们添加到片段中。我正在使用mast/detailflow,并使用webview在fragment中查看网站。fragment中没有finish方法(import android.app.fragment;)。在哪里写上面的代码?在OnDestroy方法中添加此代码实际上解决了我的问题,并帮助我保持更好的用户体验,因为在finish中添加此代码会导致在活动开始之前出现一个空白屏幕closed@PrashanthDebbadwar它应该放在保存片段/webview的活动中
@Override
public void finish() {
    ViewGroup view = (ViewGroup) getWindow().getDecorView();
    view.removeAllViews();
    super.finish();
}