Сбой веб-браузера Android «Фатальный сигнал 5 (SIGTRAP)»

У меня есть приложение с веб-просмотром, в котором я загружаю содержимое HTML с включенным javascript. Веб-просмотр внутри фрагмента.

Вот как я инициализирую webview внутри метода onCreateView фрагмента:

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", ""); 

В webview карта загружается с помощью javascript. На этой карте мы можем щелкнуть элементы и загрузить фотографии. При нажатии на фотографию отображается всплывающее окно (все еще внутри веб-просмотра). Когда я нажимаю кнопку «Назад», чтобы вернуться к карте, приложение аварийно завершает работу.

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 

Я протестировал и получил крах на Android 7.1.1, 6.0.1, 5.0.2. Затем я попытался с Android 4.4.2, и приложение не сработало.

Когда я нажимаю кнопку «Назад» (как мы видим на GIF), она должна вернуться к предыдущему состоянию, когда всплывающее окно закрыто

Попробуй это….

Сначала добавьте это

 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; } } } 
Intereting Posts