天天看点

应用接入华为分析在应用调试模式下为何没有数据上报?

​1、问题描述

首先我们按照“华为分析”的集成文档接入了华为分析SDK,说明一下集成的SDK版本为:com.huawei.hms:hianalytics:6.4.1.302,然后在“应用调试”面板无法看到实时数据,并且在“应用调试”页面的右上角没有设备可以选择,详细的情况如下图所示:

应用接入华为分析在应用调试模式下为何没有数据上报?

其实问题也比较清晰,就是在AGC后台的应用调试界面看不到数据。

首先需要确定的是否打开调试模式,这个我们可以在命令行中执行以下这个命令:

adb shell setprop debug.huawei.hms.analytics.app <package_name>

应用接入华为分析在应用调试模式下为何没有数据上报?

可以看到命令已经成功执行,我们的调试模式已经开启了,但是确实没有数据,那么该怎么解决这个问题呢?

遇到这种问题,没有什么快捷方案,我们只能按照下面的几种情况去一一排查,下面我们就来具体看一下该如何排查这个问题。

2、问题分析及解决

针对上面的问题,我们通常情况下会有以下几个步骤需要去验证是否正确。

第一:检查是否已经开通华为分析服务

经过检查我们已经开通了华为分析服务,所以这一项可以排除,如下图所示:

应用接入华为分析在应用调试模式下为何没有数据上报?

第二:检查项目中的“agconnect-services.json”文件是否是原始文件

我们重新在AGC后台下载了一份"agconnect-services.json"文件,然后和项目中的文件进行了对比,发现是完全一致的,所以这一项也可以排除了,如下图所示:

应用接入华为分析在应用调试模式下为何没有数据上报?

第三:检查AndroidManifest.xml文件中是否使用了tools:node="replace"

tools:node="replace"会导致应用某些配置与AGC SDK配置冲突,导致AGC接口获取token失败,需要做如下的修改:

a.将参数改为tools:node=“merge”。

b.手动把AGC所有的“AndroidManifest.xml”文件信息写到您的App的“AndroidManifest.xml”文件信息里。

但是我们检查了该文件发现并没有使用这个配置,所以也不存在这个问题,内容太多就不贴图了。

第四:编译APK时未进行排除Analytics Kit混淆配置,导致APK出现异常

经过检查工程的混淆配置文件,发现已经添加了Analytics Kit的混淆配置,如下所示:

Groovy 代码

-keep class com.huawei.updatesdk.**{*;} 

-keep class com.huawei.hms.**{*;} 

-keep class com.huawei.agconnect.**{*;} 

-keep interface com.huawei.hms.analytics.type.HAEventType{*;} 

-keep interface com.huawei.hms.analytics.type.HAParamType{*;}

所以这个问题也不存在。

第五:检查是否设置了数据存储地

这一项确实很难检查出来,一般情况下在开通分析服务的时候都会进行设置的,我们在经过上面各项检查都没问题之后,又一次和其它项目的agconnect-services.json文件进行了对比,才发现少了数据存储地这个字段,所以导致数据一直无法上报成功,因此,需要在开通分析服务时设置数据存储地。

OK,今天的内容就这么多了,谢谢大家!

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh