最近项目接入渠道,在接入华为SDK遇到的一些问题的记录。
使用Unity接入SDK,分为两种:
- Unity导出Android工程;
- 在Android Stdio/Eclipes中写好方法,导出AAR/jar包,让Unity调用;
公司的项目是根据导出AAR包,有C#调用。在接入华为SDK时,官方没有提供jar/aar包,只提供了Android Stido 的一些依赖:
implementation ‘com.huawei.hms:hwid:3.0.2.300’
implementation ‘com.huawei.hms:iap:3.0.2.300’
implementation ‘com.huawei.hms:game:3.0.2.300’
implementation ‘com.huawei.hms:hianalytics:2.3.0.302’
通过这些依赖,下载华为SDK需要的jar/aar包
在gradle中配置完依赖,会发现Android Stdio依赖中已经有上面图中的一些依赖,但是在lib文件中并没有增加jar/aar包,并不能copy到Unity工程中去。
在官网并没有找到新SDK下载的地址,所以只能自己去找。
解决方案:
- 通过配置依赖,下载华为的SDK的依赖,里面一定包含需要的jar/aar,需要找到下载的地址
- 找到下载的jar/aar包,重新启动一个Android Stdio工程(不要使用配置依赖关系的那个项目,防止依赖关系不准确的问题)
- 把依赖aar包导入到新的工程中去,具体的配置方法不做详细介绍,网上因该很多。
- 上面的依赖可能不完全,还需要导入其他的aar包
如何找到aar包的地址:
- Windows系统:C:\Users\dell.gradle\caches\modules-2\files-2.1
- 看到画框的文件,这些都是下载的依赖
- 进入文件中,可以找到如图中的aar包
- 找出所需要的aar包,导入Android Stdio项目中
需要的AAR包:
在公司的项目中需要的aar(没有推送),如果有有闪退的地方,通过查看日志,再去补充。
implementation(name: 'game-3.0.2.300', ext: 'aar')
implementation(name: 'hwid-3.0.2.300', ext: 'aar')
implementation(name: 'iap-3.0.2.300', ext: 'aar')
implementation(name: 'tasks-1.3.1.301', ext: 'aar')
implementation(name: 'base-3.0.0.301', ext: 'aar')
implementation(name: 'agconnect-core-1.0.0.300', ext: 'aar')
implementation(name: 'network-grs-1.0.9.302', ext: 'aar')
implementation(name: 'network-common-1.0.9.302', ext: 'aar')
Mainfest中注意事项:
在调用SDK登陆的接口,会报找不到APPID或者CPID,在文档中让导入agconnect-services.json去读取,把文件导入到Unity项目中,并不能读取到,所以需要在Mainfest中配置如下代码:
<meta-data
android:name="com.huawei.hms.client.appid"
android:value="appid=项目APPID"/>
<meta-data
android:name="com.huawei.hms.client.cpid"
android:value="cpid=项目的CPID"/>
<provider
上面是接入SDK的注意事项,其他的按照官方文档来。
项目因为有公司的其他逻辑,并不能放在网上,如果有问题,可以留言哦。