最近和队友搞Unity开发,调用HMS4.0提供的部分服务
采用Android 打包aar,供Unity端调用,简单总结一下配置方法。
开发前首先看一下官方的接入文档
官方codelab接入指南
阅读完知道最重要的三样东西:
1.签名证书
2.包名
3.agconnect-services.json文件
下面逐一说明:
1.签名证书
Unity 自动生成的签名证书是.keystore 在通过JDK的Keytool工具的时候出现了报错
猜想可能是Unity特有的字段,于是就换了个思路:先生成证书,在引入
主要参考了这篇文章 生成证书
对最后生成的android.keysore 获取对应SHA256指纹,配置到华为AGC平台
位置参考官方文档6 官方codelab
然后放到Unity项目里,在Build Setting配置就好了
2.包名
在官方文档 官方codelab2
要配置包名,在Unity player Setting的Other settings也有位置,确保Unity的和AGC平台的两者一样
3.agconnect-services.json文件
浪费了很多时间在这个文件的配置上
后来咨询了工程师
主要参考 官方游戏接入指南
底下 2.2.5 添加当前应用的AppGallery Connect配置文件
这部分内容
把自己的agconnect-services.json添加到AS的如下位置
就这样,然后打包aar到Unity的项目就好了
其他注意事项
如果用HMS的话,记得Unity项目要用.gradle
内容可以参考下我的
不然的话使用的时候会报错java.lang.NoClassDefFoundError
举例子 HMS游戏初始化 报错java.lang.NoClassDefFoundError: Failed resolution of: Lcom/huawei/hms/jos/JosApps;
对了我还分析了下原因:
aar不含有gradle文件,所以在调用的时候要自己写一下引用。
A调用B C调用A 如果不加引用的话C会报错。
这个也是网上查到的 但是出处忘了,找到的话补充上来。