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