手记

快速解决集成华为AGC服务提示miss client id问题

问题背景

最近在准备集成华为AGC性能管理服务,跟着官方文档的操作步骤逐步集成的,最后打包运行的时候,运行日志里面有一段这个错误:

I/com.huawei.agc.apms: failed to fetch remote config: client token request miss client id, please check whether the 'agconnect-services.json' is configured correctly

截图如下:

另外一位同事在集成华为AppLinking服务的时候,刚好也碰到这错误。

根据这个错误提示,我去检查了我的Demo工程里面的agconnect-services.json文件,诡异的事情发生了,json文件里面的ClientID是正常的啊。

问题复现

首先我去下载了官网的示例代码,并且替换成我自己的json文件,此时再去看run日志发现是没问题。说明我这个AGC的项目不存在云端问题。

然后,我打开刚刚从官网下载的Demo,把json里面的ClientiD干掉,重新打包运行,此时有两行错误日志,和上面的还不一样。说明也不是这个问题。

接下来,我把整个官网下载的Demo项目,和我刚刚自己创建的项目对比,发现了问题:原来是我在应用级的 build.gradle文件中,没有添加agcp插件,也就是缺少了这一句代码:

我把官网下载的Demo,gradle文件中agcp插件这一行干掉,果然复现了这个问题。

问题原因:

最后和华为技术支持沟通,了解了问题的根因:

Android项目编译的时候,gradle文件中的agcp插件会自动把json文件中的ClientID数据编译到resource路径下的String.xml文件里。

如果缺少了agcp插件,项目里的SDK就无法这个正常获取到ClientID了。

最终的问题解决: 在应用级的build.gradle文件中,正确添加agcp插件

apply plugin: 'com.android.application'
apply plugin: 'com.huawei.agconnect'
apply plugin: 'com.huawei.agconnect.apms'

作者:AppGallery Connect

0人推荐
随时随地看视频
慕课网APP