当我按下后退按钮从带有webBrowser组件的表单转到任何其他表单时,它会在android中崩溃。但是,它在iOS中运行良好。具体来说它不能在android samsung galaxy s5(android版本5.0)中工作,但在模拟器和其他Android设备中工作也很棒。我正在更新应用程序。它在以前构建的版本中运行良好,但在新版本中存在问题。我没有改变任何形式的东西,但它会让它崩溃。
我尝试调试设备并获得了以下日志。我认为“致命信号11(SIGSEGV),代码1”是这里的主要问题
日志:
11-15 14:40:51.278: A/google-breakpad(9135): M A0598000 008F1000 007A1000 000000000000000000000000000000000 data@app@com.capitalEye.roundTable-1@base.apk@classes.dex
11-15 14:40:51.453: A/libc(8864): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 8864 (lEye.roundTable)
11-15 14:40:53.653: E/audit(5364): type=1701 msg=audit(1479200153.653:335994): auid=4294967295 uid=10217 gid=10217 ses=4294967295 subj=u:r:untrusted_app:s0 pid=8864 comm="lEye.roundTable" reason="memory violation" sig=11
我的代码:
protected void beforeWebView(Form f) {
f.setLayout(new BorderLayout());
f.getToolbar().setUIID("Container");
t = new Toolbar();
t.setUIID("TitleAreaa");
f.setToolBar(t);
Style s = UIManager.getInstance().getComponentStyle("Button");
Image backtoRTN = FontImage.createMaterial(FontImage.MATERIAL_ARROW_BACK, s);
back = new Command("Back to RTN", backtoRTN) {
@Override
public void actionPerformed(ActionEvent evt) {
showForm("BusinessForum", this);
}
};
back.putClientProperty("uiid", "BacktoRTN");
f.setBackCommand(back);
t.addCommandToLeftBar(back);
}
@Override
protected void postWebView(Form f) {
if (Connectivity.isConnected()) {
WebBrowser wb = new WebBrowser();
if (businessWebsiteUrl != null && !businessWebsiteUrl.equals("")) {
wb.setURL("http://" + businessWebsiteUrl);
f.add(BorderLayout.CENTER, wb);
f.revalidate();
}
}
}
答案 0 :(得分:0)
这是来自浏览器组件的系统崩溃,该组件是本地对等方。我猜测底层HTML触发了本机操作系统的webkit代码中的一个错误,引发了崩溃。
由于我们使用原生Android操作系统浏览器和VM系统级崩溃是一个Android错误。我们可以解决其中的一些问题,但如果它在HTML中,那么解决方法的可能性很小。