問題背景
最近在准備集成華為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