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