华为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