赞
踩
接入方式:as里面接入华为sdk 导出jar包给Unity使用
接入过程:仔细阅读华为文档 按照文档接入 此处省去
遇到问题1:凡是调用华为sdk的地方 提示java.lang.NoClassDefFoundError
原因:导出jar包 并不会把你通过as gradle里下载华为相关包一起导出 导致找不到相关的包
解决办法:在unity的Plugins/Android下面 建一个mainTemplate.gradle文件 重新添加相关依赖 形如下面的代码 这样就能解决包找不到的问题
- // GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
-
- buildscript {
- repositories {
- google()
- jcenter()
- maven {url 'https://developer.huawei.com/repo/'}
- }
-
- dependencies {
- classpath 'com.android.tools.build:gradle:3.2.0'
- classpath 'com.huawei.agconnect:agcp:1.3.1.300'
- }
- }
-
- allprojects {
- repositories {
- google()
- jcenter()
- maven {url 'https://developer.huawei.com/repo/'}
- flatDir {
- dirs 'libs'
- }
- }
- }
-
- apply plugin: 'com.android.application'
- apply plugin: 'com.huawei.agconnect'
-
-
- dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'com.huawei.hms:base:5.0.3.300'
- implementation 'com.huawei.hms:hwid:5.0.3.301'
- implementation 'com.huawei.hms:iap:5.0.2.300'
- implementation 'com.huawei.hms:game:5.0.3.301'
- implementation 'com.huawei.agconnect:agconnect-auth:1.4.1.300'
- implementation 'com.huawei.hms:hianalytics:5.0.4.300'
- }
-
- android {
- // compileSdkVersion 29
- // buildToolsVersion '29.0.3'
-
- compileSdkVersion **APIVERSION**
- buildToolsVersion '**BUILDTOOLS**'
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-
- defaultConfig {
- minSdkVersion 19
- targetSdkVersion 29
- applicationId 'xxx.xxx.xxx'
- ndk {
- abiFilters 'armeabi-v7a'
- }
- versionCode 1
- versionName '0.1'
- }
-
- lintOptions {
- abortOnError false
- }
-
- aaptOptions {
- noCompress = ['.unity3d', '.ress', '.resource', '.obb']
- ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
- }
-
- signingConfigs {
- release {
- storeFile file("../../xxx.keystore")
- storePassword "xxxx"
- keyAlias "xxx"
- keyPassword "xxx"
- }
- }
-
- buildTypes {
- debug {
- minifyEnabled false
- useProguard false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
- signingConfig signingConfigs.release
- jniDebuggable true
- }
- release {
- minifyEnabled false
- useProguard false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
- signingConfig signingConfigs.release
- }
- }
-
- packagingOptions {
- doNotStrip '*/armeabi-v7a/*.so'
- }
-
-
- bundle {
- language {
- enableSplit = false
- }
- density {
- enableSplit = false
- }
- abi {
- enableSplit = true
- }
- }
- }

遇到问题2:华为后台下载的agconnect-services文件 不会被一起导出 Unity无法识别里面的参数配置
解决办法1:修改manifrst文件 手动配置appid等参数
<meta-data android:name="com.huawei.hms.client.appid" android:value="appid=1233(你的appid)" />
具体可以参考:https://blog.csdn.net/linxinfa/article/details/88953267
https://blog.csdn.net/qq_33515628/article/details/103508052
上面这种方法有缺陷 如果你要使用华为分析相关 这种方法就行不通 华为分析相关参数 无法配置
针对上面的问题 有了下面的新办法 我更推荐下面的方法
a 将agconnect-services放在unity的Plugins/Android下面
b 从Unity官方的华为demo里面 找到这个编辑器脚本AfterBuildToDO 拷贝到自己的工程里面 demo地址:https://github.com/Unity-Technologies/HMSSDKSample
通过上面两步 就能解决agconnect-service里面参数读取不到问题 也不需要再通过manifest来配置
此外 unity现在有针对华为HMS Core的集成说明的,下篇文章会描述相关的内容
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。