快速解决集成华为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'
官网添加agcp步骤流程:
原文链接:https://developer.huawei.com/consumer/cn/forum/topic/0201402974555510177?fid=0101271690375130218
作者:AppGallery Connect