在客制化开发时,我们可能会遇到一些报错,譬如我曾遇到过库文件找不到的错误,这种类型的报错还是好解决的。但是有时候难免会遇到一些疑难杂症,而我们一时之间找不到具体是哪个地方所导致的报错的情况下,如调用某个方法时会报空指针,然后某进程kill。当然这种报错并不会影响系统的使用的情况下我们可以用这种方法来解决。
报错时会弹出一个dialog提示停止,我们根据log是可以找出具体是哪个进程停止了的。
系统对弹错的提示dialog是在framework/base/services/core/java/com/android/server/am/ActivityManagerService.java这个类中的handleMessage中进行了定义。我们可以这样去进行屏蔽。
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -1458,7 +1458,11 @@ public final class ActivityManagerService extends ActivityManagerNative
if (mShowDialogs && !mSleeping && !mShuttingDown) {
Dialog d = new AppErrorDialog(mContext,
ActivityManagerService.this, res, proc);
- d.show();
+ if((proc.info.processName).contains("停止的进程名")){
+ return;
+ }else{
+ d.show();
+ }
proc.crashDialog = d;
} else {