華為AGC推出的崩潰服務,零代碼集成,只需要添加SDK即可。有時可能集成了SDK,在AGC頁面獲取不到崩潰報告,總結了一下可以排查以下幾點:
1、首先確認下端側有沒有上報
執行“adb shell setprop log.tag.AGC_LOG VERBOSE” 開啟Crash SDK的調試模式,在應用崩潰時看是否有打印“upload success”,有打印說明端側已經上報,否則需要檢查集成情況。
如果端側沒有上報的話可以直接調用testit接口制造一個崩潰,同時添加如下代碼打印crashhandler:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
Button btn_crash = findViewById(R.id.btn_crash);
btn_crash.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String clzName = getTheDefaultCrashHandler();
if(isAGCCrashHandler(clzName)){
AGConnectCrash.getInstance().testIt();
} else{
Toast.makeText(MainActivity.this,
"the default crash handler is " + clzName,
Toast.LENGTH_SHORT).show();
}
}
});
private boolean isAGCCrashHandler(String clz){
if(clz.startsWith("com.huawei.agconnect.crash")) {
return true;
}
return false;
}
private String getTheDefaultCrashHandler(){
Thread.UncaughtExceptionHandler defCrashHandler = Thread.getDefaultUncaughtExceptionHandler();
return defCrashHandler.getClass().getName();
}
|
確保default crash handler 是AGC, 有可能有開發者集成了其他第三方的crash服務,導致AGC的crash 還沒有初始化成功,應用就崩潰了。此時可以嘗試取消其他第三方的崩潰服務,只集成AGC 的崩潰服務。如果可以那就需要檢查下各個崩潰服務的集成是否有沖突。
2、端側有上報,AGC頁面仍舊沒有展示
2.1 確保手機的網絡是好的
2.2 項目添加的json是在開通華為分析后的。Json里面包含這些信息:
2.3 應用崩潰后再次打開不發生崩潰,Java的crash在崩潰時就會上報崩潰信息,NDK的崩潰當前還是需要再次打開應用才上報。
2.3 查看華為分析“實時概覽”,是否有數據上報
2.4 AGC頁面分別點擊“按用戶搜索”和“統計”頁簽,看是否均沒有報告,有時HA會在“按用戶搜索”展示崩潰信息,但是“統計”頁簽沒有。這種情況可能是實時數據采集有積壓導致,需要聯系華為工程師處理。
想要了解更多崩潰服務的開發指南,請參考:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-crash-test-0000001055420516
原文鏈接:developer.huawei.com/consumer/cn…
原作者:Mayism