Android的webview崩溃“致命信号5(SIGTRAP)”

我有一个webview的应用程序,其中我加载的HTML内容启用JavaScript。 webview是在一个片段。

这是我如何初始化片段的onCreateView方法内的webview:

WebView webview = (WebView) mainView.findViewById(R.id.webview); WebSettings webSettings = webview.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setDisplayZoomControls(false); webSettings.setLoadsImagesAutomatically(true); webSettings.setBuiltInZoomControls(true); webSettings.setDomStorageEnabled(true); webSettings.setSupportMultipleWindows(true); webview.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); /* * My code */ } }); webview.setWebChromeClient(new WebChromeClient() { @Override public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) { WebView.HitTestResult result = view.getHitTestResult(); String data = result.getExtra(); if (data != null) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(data)); startActivity(browserIntent); } return false; } }); webview.loadDataWithBaseURL(baseUrl, htmlData, "text/html", "utf-8", ""); 

在web视图中,地图是用javascript加载的。 在这个地图上,我们可以点击元素并加载照片。 点击时,照片显示在一个popup窗口(仍在web视图中)。 当我点击后退button回到地图,应用程序崩溃。

应用程序崩溃的GIF

这里是错误日志:

 A/libc: Fatal signal 5 (SIGTRAP), code 1 in tid 949 (Chrome_InProcRe) [ 03-21 11:26:08.510 364: 364 W/ ] debuggerd: handling request: pid=32610 uid=10289 gid=10289 tid=949 

我testing了Android 7.1.1,6.0.1,5.0.2的崩溃。 然后我试着用Android 4.4.2,应用程序没有崩溃。

当我点击后退button(就像我们在GIF上看到的那样),它应该返回到前一个状态,popup窗口closures

尝试这个….

首先添加这个

 webView.setWebViewClient(new MyBrowser()); 

然后添加这个

 public class MyBrowser extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub if (url.equals(""YOUR URL)) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); return true; } else { return false; } } }