继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

华为HMS Core集成测试报错找不到appid和cpid

华为开发者论坛
关注TA
已关注
手记 196
粉丝 12
获赞 3

问题背景:

为了让我们开发者减少集成配置,在集成华为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查询

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

作者:Mayism

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP