华为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”文件要拷贝到应用级根目录下,如下图。

华为HMS Core集成测试报错找不到appid和cpid_第1张图片

  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,配置如下信息

  
    android:value="appid=xxx">  



cpid从agconnect-services.json查询

通过以上方式基本可以解决类似问题。


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

你可能感兴趣的:(androidhms-core)