javascript - Android WebView 崩溃 "Fatal signal 5 (SIGTRAP)"

标签 javascript java android webview android-webview

我有一个带有 Web View 的应用程序,我在其中加载启用了 JavaScript 的 HTML 内容。 Web View 位于 fragment 内。

这就是我在 fragment 的 onCreateView 方法中初始化 Web View 的方式:

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 中, map 是用 JavaScript 加载的。在此 map 上,我们可以单击元素并加载照片。单击时,照片会显示在弹出窗口中(仍在 Web View 中)。当我点击后退按钮返回 map 时,应用程序崩溃了。

GIF of the crash in app

这是错误日志:

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 上看到的那样),它应该返回到弹出窗口关闭的前一个状态

最佳答案

尝试覆盖后退导航功能并自行关闭弹出窗口。

您无需处理所有堆栈导航逻辑,只需在显示此弹出窗口时有一个状态即可。 应用您自己的导航逻辑(例如手动关闭弹出窗口)。

void onBackPressed(){
    if(isTheBuggyPopupIsOn){
        closeTheBuggyPopup();
    }
    else{
        super.onBackPressed();
    }
}

关于javascript - Android WebView 崩溃 "Fatal signal 5 (SIGTRAP)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42925436/

相关文章:

java - Kotlin硬编码字符串

javascript - AngularStrap typeahead ng-options - 标签与模型不同

java - 第三方库中是否有用于 JUnit @Category() 的接口(interface)

java - 相邻小区的 UMTS 小区 ID

java - 显示图像 - 错误 : incompatible types: ParseObject cannot be converted to ParseFile

java - 为Android应用程序设置声音

javascript - html 元素 - 文档对象的属性?或者一个物体?

javascript - TypeScript:映射强类型集合

javascript - 如何删除 ng-repeat 的默认顺序

java - 想要在整个应用程序中保存用户对角色的选择