【问题标题】:Fatal signal 6 (sigabrt) (code=-6) webview致命信号 6 (sigabrt) (code=-6) webview
【发布时间】:2014-12-21 18:06:33
【问题描述】:

所以我有一个 webview 和一个菜单。它工作正常,当我打开时。我设置如果 webview 进度不是 0 或不是 100(所以在加载页面时)webview 重新加载菜单项不可见(所以你看不到),并且停止菜单项是可见的。如果 webview 加载页面(因此进度 100)或无法加载页面(进度 0),重新加载菜单项将变为可见,而停止菜单项将变为不可见。我说,它工作正常......直到我退出应用程序。 (我没有从系统历史中清除)。

我重新打开了应用程序。碰撞!为什么?如果我从系统历史记录中删除该应用程序,它不会崩溃。我破坏了活动(在代码中),但它不起作用。

 // ...
 @Override
 public void onProgressChanged(WebView view, int progress) {
     progressBarLoad.setProgress(progress);
     int prInt = progressBarLoad.getProgress();
     if (prInt > 0 && prInt < 100) {
         menuMain.findItem(R.id.MenuExit).setVisible(true);
         menuMain.findItem(R.id.MenuReload).setVisible(false);
         }
     if (prInt == 100 || prInt == 0) {
         menuMain.findItem(R.id.MenuExit).setVisible(false);
         menuMain.findItem(R.id.MenuReload).setVisible(true);
         }
     }
 //...

OnKeyDown:

 @Override
    public boolean onKeyDown(int keyCode, @NonNull KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && !webViewMain.canGoBack()) {
            if (booleanOnKeyDown) {
                new AlertDialog.Builder(this)
                        .setTitle(getString(R.string.SureExitTitle))
                        .setPositiveButton(getString(R.string.Yes), new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                finish();
                                onDestroy();
                            }
                        })
                        .setNegativeButton(getString(R.string.No), new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                            }
                        }).show();
            }
        }
        return super.onKeyDown(keyCode, event);
    }

日志:

10-26 12:41:15.867  14008-14008/com.zokni1996.android_forum W/System.err﹕ java.lang.NullPointerException
10-26 12:41:15.867  14008-14008/com.zokni1996.android_forum W/System.err﹕ at com.zokni1996.android_forum.Main.Main$6.onProgressChanged(Main.java:451)
10-26 12:41:15.867  14008-14008/com.zokni1996.android_forum W/System.err﹕ at com.android.webview.chromium.WebViewContentsClientAdapter.onProgressChanged(WebViewContentsClientAdapter.java:271)

【问题讨论】:

  • 请避免使用笑脸和“blabla”之类的东西。保持专业。
  • 好的,对不起,我会编辑:S(对不起我的英语不好)

标签: android webview fatal-error


【解决方案1】:

我解决了这个问题(是的,这是一个非常非常糟糕的解决方案)。这是一个空点异常。我使用了 try-catch。

// ...
@Override
public void onProgressChanged(WebView view, int progress) {
    progressBarLoad.setProgress(progress);
    if (progressBarLoad.getProgress() > 0 && progressBarLoad.getProgress() < 100) {
        try {
            menuMain.findItem(R.id.MenuExit).setVisible(true);
            menuMain.findItem(R.id.MenuReload).setVisible(false);
        } catch (Exception e) {
            Log.i("Menu failed reload or stop ", "" + e);
        }
    } else {
        try {
            menuMain.findItem(R.id.MenuExit).setVisible(false);
            menuMain.findItem(R.id.MenuReload).setVisible(true);
        } catch (Exception e) {
            Log.i("Menu failed reload or stop", "" + e);
        }
    }
}
//...

【讨论】:

    猜你喜欢
    • 2015-03-29
    • 2016-01-05
    • 2014-04-29
    • 2017-07-27
    • 2017-03-07
    • 2020-05-01
    • 2014-06-25
    • 2015-04-28
    相关资源
    最近更新 更多