1. 程式人生 > 實用技巧 >華為HMS Core整合測試報錯找不到appid和cpid

華為HMS Core整合測試報錯找不到appid和cpid

問題背景:

為了讓我們開發者減少整合配置,在整合華為HMS SDK時,華為提供了agconnect-services.json檔案,開發者需要按照指導獲取該檔案,並將檔案部署到工程制定位置。agconnect-services.json檔案內包含appid、cpid等AGC頁面建立的各種專案資訊。

問題現象:

整合測試呼叫介面失敗,日誌有兩個比較明顯報錯,一個是找不到appid以及cpid,還有一個是介面報錯907135000。

日誌報錯:

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檔案沒有整合成功,自己看官網資料以及和華為支援人員溝通,總結以下幾個檢查點:

  1. “agconnect-services.json”檔案要拷貝到應用級根目錄下,如下圖。

  1. 檢查下應用級build.gradle中包名applicationId是否為agc頁面配置的包名,區分大小寫。

  2. 檢查下專案級“build.gradle”檔案中在“buildscript > dependencies”中是否新增agcp配置。示例如下:

buildscript {
    repositories {
    google()
    jcenter()
    maven {url 'https://developer.huawei.com/repo/'}
}
 
dependencies {
    ...
    classpath 'com.huawei.agconnect:agcp:1.4.1.300'
}
}
  1. 檢查應用級的“build.gradle”檔案新增如下配置

apply plugin: 'com.huawei.agconnect'

注意:該配置必須新增到apply plugin: 'com.android.application的下一行,否則會有問題

  1. 如果涉及多渠道發包,可能以上檢查後仍然不能檢查到appid和cpid,則可以使用以下“笨方法”起到相同效果。

json檔案仍部署到制定位置,然後在manifest中定義appid和cpid,配置如下資訊

<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查詢

通過以上方式基本可以解決類似問題。


原文連結:
https://developer.huawei.com/consumer/cn/forum/topic/0204405821561130251?fid=18&pid=0304405821561130168
作者:Mayism