栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

Unity2017 接入华为HMS SDK 获取不到agconnect-services.json配置文件

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity2017 接入华为HMS SDK 获取不到agconnect-services.json配置文件

问题描述

最近在接华为 HMS 登录的 SDK, 在Android Studio接入打包可以使用, 在Unity里打包, agconnect-services.json 配置文件缺失, 导致不能使用.

在网上找的解决方案:

1.一种是修改 manifest 文件, 配置参数, 这种太麻烦, 新版的SDK参数太多了, 也不一定所有的参数配置完就有用, 所以这种方法已经不适用了

2.第二种Unity给华为提供了一个HMS SDK的插件, 里面有个解决方案, 把json配置文件放到Plugins/Android目录, 然后把 AfterBuildToDo 脚本放在自己工程的Editor目录.

原文链接:华为开发者论坛

这个脚本核心的功能在于 继承了 IPostGenerateGradleAndroidProject 接口

unity官方文档: Android.IPostGenerateGradleAndroidProject - Unity 脚本 API

主要功能是 在 Android Gradle 项目生成之后且构建开始之前,实现该函数以接收回调。执行内部构建时不会进行调用。

也就是在 Gradle 项目准备好之后, 打包前进行回调, 做处理把 json 配置文件放到Gradle 项目里, 这样就打包进项目了.

但是我们的项目用的Unity版本太低了, 不支持这个接口, 只能再换别的方法.

最终解决方法

根据第二种方法的思路, 最终都是生成 Gradle 项目打包, 就从 Gradle 命令处理, Gradle 有很丰富的脚本生命周期的回调, 只要在项目构建开始之前把 json 配置文件放进项目就可以了, 于是我就修改下 mainTemplate.gradle 文件, 在unity中自定义打包脚本.

部分配置如下

buildscript {
	repositories {
        mavenCentral()
		google()
		jcenter()
		// 配置HMS Core SDK的Maven仓地址。
        maven {url 'https://developer.huawei.com/repo/'}
	}

	dependencies {
            classpath 'com.android.tools.build:gradle:3.4.3'
			//HMS 增加agcp插件配置
			classpath 'com.huawei.agconnect:agcp:1.6.4.300'
	}
}

allprojects {
   repositories {
	   mavenCentral()
	   google()
	   jcenter()
	   // 配置HMS Core SDK的Maven仓地址。
	   maven {url 'https://developer.huawei.com/repo/'}
	   flatDir {
		   dirs 'libs'
		}
   }

   //配置完成后回调, copy HMS 配置文件到打包目录
   afterEvaluate {
        copy {
			from '../../Assets/Plugins/Android/agconnect-services.json'
			into './'
		}
    }
}

apply plugin: 'com.android.application'
apply plugin: 'com.huawei.agconnect'

dependencies {
	implementation fileTree(dir: 'libs', include: ['*.jar'])
	implementation 'com.huawei.hms:hwid:6.4.0.300'
**DEPS**}

afterEvaluate 是在配置完成后的回调, 我们在这里把 json 配置文件 copy 到 Gradle 项目即可

生成的 Gradle 项目 在项目 根目录/Temp/gradleOut

路径是相对路径, 相对于Gradle 项目的路径, 可根据项目实际情况修改

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/898953.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号