Java 如何修复关闭并再次单击后对话框中的错误?
我正在开发webview应用程序,当我点击对话框时,它会在关闭后打开,然后再次点击停止我的应用程序,很抱歉,我无法从调试中得到问题 这是我的主要活动。课堂Java 如何修复关闭并再次单击后对话框中的错误?,java,android,xml,android-webview,Java,Android,Xml,Android Webview,我正在开发webview应用程序,当我点击对话框时,它会在关闭后打开,然后再次点击停止我的应用程序,很抱歉,我无法从调试中得到问题 这是我的主要活动。课堂 @Override public boolean onJsAlert(WebView view, String url, final String alertSource, final JsResult alertResult) { alertDialog.requestWindowFeature(Window.FEATURE_NO
@Override
public boolean onJsAlert(WebView view, String url, final String alertSource, final JsResult alertResult) {
alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
alertDialog.setContentView(R.layout.activity_alert);
alertDialog.setCancelable(true);
TextView alertMessage = alertDialog.findViewById(R.id.alert_text);
alertMessage.setText(alertSource);
alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
alertDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
alertResult.cancel();
}
});
alertDialog.show();
return true;
}
编辑:日志
W/InputEventReceiver:试图完成输入事件,但输入事件接收器已被释放。
E/ViewRootImpl:sendUserActionEvent()mView==null
W/System.err:android.util.AndroidRuntimeException:requestFeature()必须在添加内容之前调用
W/System.err:com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:331)
位于android.app.Dialog.requestWindowFeature(Dialog.java:1057)
位于com.xcoder.stepview.MainActivity$4.onJsAlert(MainActivity.java:285)
位于com.android.webview.chromium.WebViewContentsClientAdapter.handleJsAlert(WebViewContentsClientAdapter.java:606)
访问com.android.org.chromiu.android_webview.AwContentsClientBridge.handleJsAlert(AwContentsClientBridge.java:73)
位于com.android.org.chromium.base.SystemMessageHandler.NativeDorUnloponce(本机方法)
位于com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:146)
位于android.app.ActivityThread.main(ActivityThread.java:5641)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
W/System.err:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1288)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1104)
在dalvik.system.NativeStart.main(本机方法)
A/libc:0x00002c6d(代码=-6)处的致命信号6(SIGABRT),线程11373(xcoder.stepview)
申请终止
您的
alertDialog
是在调用public boolean onJsAlert(…)
方法之前创建的,当您第二次调用该方法时,必须在添加内容之前调用AndroidRuntimeException:requestFeature()
,因为您不能在创建的对话框中使用requestWindowFeature()。您必须在此方法中创建新的dialog实例或重用全局定义的dialog。任何logcat报告?替换alertDialog.show();使用dialog.cancel()@努曼奇我加了报告。@Benjamin不是为我工作的@在onJsAlert()
方法中使用xhionic create new dialog,并将alertDialog=new…
置于顶部,并保留所有其他代码行