Java 如何修复关闭并再次单击后对话框中的错误?

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

我正在开发webview应用程序,当我点击对话框时,它会在关闭后打开,然后再次点击停止我的应用程序,很抱歉,我无法从调试中得到问题

这是我的主要活动。课堂

@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…
置于顶部,并保留所有其他代码行