Android7.1 ANR error 弹窗处理
- 问题描述
 - 解决方法
 
郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的
转载请标明出处:攻城狮2015
Platform: Rockchip
OS:Android 7.1.2
Kernel: 3.10
问题描述
有时会用到第三方apk,内置到系统中,如第三方主界面,然后开机的时候,莫名其妙弹出一个对话框,需要点击确认按键,再次打开,就正常了。根据Logcat信息,是ANR ERROR,又没有别的按键,只有点击ok。这个时候,没有apk源码,只能在系统中模拟点击事件,快速的处理这个问题
解决方法
思路:
ANR自动确认frameworks/base/services/core/java/com/android/server/am/AppNotRespondingDialog.java中重载onCreate()方法,构建时发布一个关闭事件,然后再mHandler的关闭事件中关闭对话框,即在FORCE_CLOSE中添加AppNotRespondingDialog.this.dismiss();
直接上patch
+++ b/frameworks/base/services/core/java/com/android/server/am/AppNotRespondingDialog.java
@@ -119,6 +119,8 @@ final class AppNotRespondingDialog extends BaseErrorDialog implements View.OnCli
         wait.setOnClickListener(this);
 
         findViewById(com.android.internal.R.id.customPanel).setVisibility(View.VISIBLE);
+               
+        mHandler.obtainMessage(FORCE_CLOSE,this).sendToTarget();
     }
 
@@ -149,6 +151,7 @@ final class AppNotRespondingDialog extends BaseErrorDialog implements View.OnCli
                 case FORCE_CLOSE:
                     // Kill the application.
                     mService.killAppAtUsersRequest(mProc, AppNotRespondingDialog.this);
+                    AppNotRespondingDialog.this.dismiss();
                     break;
 
郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的
 转载请标明出处:攻城狮2015






![[java入门到精通] 19 网络编程,设计模式](https://img-blog.csdnimg.cn/direct/0423ea9bee904623a961983df58e6530.png#pic_center)













