華為AGC推出的崩潰服務,零代碼集成,只需要添加SDK即可。有時可能集成了SDK ,在AGC頁面獲取不到崩潰報告,總結(jié)了一下可以排查以下幾點:
1,首先確認下端側(cè)有沒有上報
執(zhí)行“亞行外殼setprop log.tag.AGC_LOG詳細” 開啟崩潰SDK的調(diào)試模式,在應用崩潰時看是否有打印“上傳成功”,有打印說明端側(cè)已經(jīng)上報,否則需要檢查集成情況。
如果端側(cè)沒有上報的話可以直接調(diào)用testit接口制造一個崩潰,同時添加如下代碼打印crashhandler:
Button btn_crash = findViewById(R.id.btn_crash);<font></font>
btn_crash.setOnClickListener(new View.OnClickListener() {<font></font>
@Override<font></font>
public void onClick(View view) {<font></font>
final String clzName = getTheDefaultCrashHandler();<font></font>
if(isAGCCrashHandler(clzName)){<font></font>
AGConnectCrash.getInstance().testIt();<font></font>
} else{<font></font>
Toast.makeText(MainActivity.this,<font></font>
"the default crash handler is " + clzName,<font></font>
Toast.LENGTH_SHORT).show();<font></font>
}<font></font>
}<font></font>
});<font></font>
<font></font>
private boolean isAGCCrashHandler(String clz){<font></font>
if(clz.startsWith("com.huawei.agconnect.crash")) {<font></font>
return true;<font></font>
}<font></font>
return false;<font></font>
}<font></font>
private String getTheDefaultCrashHandler(){<font></font>
Thread.UncaughtExceptionHandler defCrashHandler = Thread.getDefaultUncaughtExceptionHandler();<font></font>
return defCrashHandler.getClass().getName();<font></font>
}
確保默認的崩潰處理程序是AGC , 有可能有開發(fā)者集成了其他第三方的崩潰服務,導致AGC的崩潰還沒有初始化成功,應用就崩潰了。此時可以嘗試取消其他第三方的崩潰服務,只集成AGC的崩潰服務。如果可以那就需要檢查下各個崩潰服務的集成是否有沖突。
2,端側(cè)有上報, AGC頁面仍舊沒有展示
2.1確保手機的網(wǎng)絡是好的
2.2項目添加的JSON是在開通華為分析后的。 Json的里面包含這些信息:
2.3應用崩潰后再次打開不發(fā)生崩潰, Java的崩潰在崩潰時就會上報崩潰信息, NDK的崩潰當前還是需要再次打開應用才上報。
2.3查看華為分析“實時概覽”,是否有數(shù)據(jù)上報
2.4 AGC頁面分別點擊“按用戶搜索”和“統(tǒng)計”頁簽,看是否均沒有報告,有時HA會在“按用戶搜索”展示崩潰信息,但是“統(tǒng)計”頁簽沒有。這種情況可能是實時的數(shù)據(jù)采集有積壓導致,需要聯(lián)系華為工程師處理。
想要了解更多崩潰服務的開發(fā)指南,請參考:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-crash-test-0000001055420516