爲了讓咱們開發者減小集成配置,在集成華爲HMS SDK時,華爲提供了agconnect-services.json文件,開發者須要按照指導獲取該文件,並將文件部署到工程制定位置。agconnect-services.json文件內包含appid、cpid等AGC頁面建立的各類項目信息。java
集成測試調用接口失敗,日誌有兩個比較明顯報錯,一個是找不到appid以及cpid,還有一個是接口報錯907135000。android
E/HMSSDK_AGCUtils: In getMetaDataAppId, Failed to read meta data for the AppID. E/HMSSDK_AGCUtils: Get client/app_id failed: java.io.FileNotFoundException: agconnect-services.json E/HMSSDK_AGCUtils: The client/app_id is null. E/SecurityResourcesReader: KEY is null return def directly I/HMSSDK_AGCUtils: In getMetaDataCpId, Failed to read meta data for the CpId. E/HMSSDK_AGCUtils: Get client/cp_id failed: java.io.FileNotFoundException: agconnect-services.json E/HMSSDK_AGCUtils: The client/cp_id is null. I/HMSSDK_HmsClient: receive msg status_code:1, error_code 907135000, api_name:core.getNoticeIntent, app_id:|, pkg_name:com.appservicetest.huawei, session_id:*, transaction_id:000000000Intent20201105190645844381286, resolution:null
從日誌中能夠看出agconnect-services.json文件沒有集成成功,本身看官網資料以及和華爲支持人員溝通,總結如下幾個檢查點:json
檢查下應用級build.gradle中包名applicationId是否爲agc頁面配置的包名,區分大小寫。api
buildscript { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} } dependencies { ... classpath 'com.huawei.agconnect:agcp:1.4.1.300' } }
apply plugin: 'com.huawei.agconnect'bash
注意:該配置必須添加到apply plugin: 'com.android.application的下一行,不然會有問題。session
json文件仍部署到制定位置,而後在manifest中定義appid和cpid,配置以下信息app
<meta-data android:name="com.huawei.hms.client.appid" <!-- value的值「xxx」用實際申請的應用ID替換,來源於應用詳情。--> android:value="appid=xxx"> </meta-data> <!-- value的值「xxx」用實際申請的開發者的支付ID替換,來源於應用的支付服務信息。--> <meta-data android:name="com.huawei.hms.client.cpid" android:value="cpid=xxx"> </meta-data>
cpid從agconnect-services.json查詢maven
經過以上方式基本能夠解決相似問題。ide
原文連接:
https://developer.huawei.com/consumer/cn/forum/topic/0204405821561130251?fid=18&pid=0304405821561130168
做者:Mayism測試