【问题标题】:Android - Unable to click button when using global exceptionAndroid - 使用全局异常时无法单击按钮
【发布时间】:2015-07-01 03:59:25
【问题描述】:

我在我的 mainactivity 中使用全局异常处理程序,并且我有一些按钮。如果未捕获的异常被调用,则 onclicklistener 按钮不起作用。

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
          @Override
          public void uncaughtException(Thread paramThread, Throwable paramThrowable) {
              Log.e("Alert","Lets See if it Works !!!");

          }
      });
     setContentView(R.layout.activity_graphical_report);

    Button samBtn = findViewById(R.id.imggraphview);

    samBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Intent myIntent = new Intent(MainActivity.this, SecondActivity.class)
            startActivity(myIntent);
        }
    });

}

错误:

06-30 16:31:20.791: E/AndroidRuntime(2324): FATAL EXCEPTION: main
06-30 16:31:20.791: E/AndroidRuntime(2324): java.lang.IllegalArgumentException: View not attached to window manager
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:672)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:368)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.view.WindowManagerImpl$CompatModeWrapper.removeView(WindowManagerImpl.java:160)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.app.Dialog.dismissDialog(Dialog.java:319)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.app.Dialog.dismiss(Dialog.java:302)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at in.co.amiindia.vitalsservice.MessageTask.onPostExecute(SourceFile:73)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at in.co.amiindia.vitalsservice.MessageTask.onPostExecute(SourceFile:1)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.os.AsyncTask.finish(AsyncTask.java:631)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.os.AsyncTask.access$600(AsyncTask.java:177)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.os.Looper.loop(Looper.java:137)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at android.app.ActivityThread.main(ActivityThread.java:4895)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at java.lang.reflect.Method.invokeNative(Native Method)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at java.lang.reflect.Method.invoke(Method.java:511)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
06-30 16:31:20.791: E/AndroidRuntime(2324):     at dalvik.system.NativeStart.main(Native Method)

谁能帮我解决这个问题。

提前致谢

【问题讨论】:

  • 您的 onClick 在哪里?如果有任何错误,请发布堆栈跟踪。
  • 你遇到什么错误了吗?
  • 我用的是一个罐子。从那个 jar 中我得到了一些错误,当时未捕获的异常被调用。
  • 请显示该错误,如果您的异常被调用,那么您的以下代码如何工作?
  • 你的这行代码在哪里?在 in.co.amiindia.vitalsservice.MessageTask.onPostExecute(SourceFile:73)

标签: android exception exception-handling


【解决方案1】:

投射一个可能有问题的按钮

Button samBtn = (Button)findViewById(R.id.imggraphview);

【讨论】:

    【解决方案2】:

    首先设置您的视图。

    setContentView(R.layout.activity_graphical_report);
    Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
              @Override
              public void uncaughtException(Thread paramThread, Throwable paramThrowable) {
                  Log.e("Alert","Lets See if it Works !!!");
    
              }
          });
    

    并且您的按钮不是类型转换的。

    【讨论】:

    • 嗨,我试过了,我仍然面临同样的问题。我将视图设置为第一个按钮 onclicklistener 不起作用
    • 如果没有抛出错误按钮 onclicklistener 工作正常
    • 能否在未捕获异常之前使用点击监听器。
    • 我在未捕获异常之前使用了点击监听器,但我仍然面临同样的问题。
    猜你喜欢
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2011-03-23
    • 2021-06-01
    • 1970-01-01
    相关资源
    最近更新 更多