Unity使用gradle接入sdk和打包

Posted Unity小伙伴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity使用gradle接入sdk和打包相关的知识,希望对你有一定的参考价值。

tips:本文基于Unity5.6.3f1和android Studio2.3.3


白话几句

这几天小编需要游戏中接入微信的AndroidSDK,首先当前接入AndroidSDK主要有两种方式:

  • 在安卓工程接入SDK导出jar/aar包到Unity中,在Unity中进行打包

  • Unity导出安卓工程,然后接入SDK,使用安卓工程打包

之前小编有第一中方式的经验(eclipse导出jar到Unity使用),然而在微信官方文档上看到如下的内容:

然后往下看到环境搭建部分:
Unity使用gradle接入sdk和打包
Android Studio环境配置只用一句话,而Eclipse需要1,2,3,看到这里小编心动了(由于小编不是安卓开发者,果断选择相对简单的)。


Unity导出Gradle工程并在Android Studio中打开

在Unity Build Setting选项中进行如下选择
Unity使用gradle接入sdk和打包
详细请查看Unity官方文档Gradle for Android

点击Export并且选择一个目录,出现如下错误:
Unity使用gradle接入sdk和打包
是因为对应用进行签名之前才能导出,小编使用Unity自带的工具生成签名文件(当然也可以使用Android Studio生成)。步骤如下:

  • Player Setting -> Player Setting面板最下面点击Publishing Setting:

Unity使用gradle接入sdk和打包

  • 选中Create a new keystore…,

  • 点击Brower Keystore,并且选择一个文件夹;

  • 输入password,并且确认密码;

  • 点击Alias,选中Create a new key

Unity使用gradle接入sdk和打包

  • 设置画红线的信息(其他为选填),点击Create Key;

  • 再次点击Alias,选中上一步创建key(这里是key0),并且在Password填入刚才设置的密码;

进行签名之后,再次进行工程的导出即可正常导出。打开Android Studio选择Import project,选中之前导出的Gradle工程,出现如下界面:

Unity使用gradle接入sdk和打包

  • 对于那些强迫症的,可以选择OK,直接使用最新的

  • 一般项目的话应该都是使用 local 的,所以这里应该 Cancel,在之后的弹窗中设置本地的Gradle Home即可。

项目在Android Studio中打开之后可能会出现如下错误:

这可能是由于网络原因导致的,在Android Studio中打开build.gradle文件,将”com.android.tools.build:gradle:2.1.3″改成一个可用的版本即可(可以新建一个Android Studio工程查看),然后删除第一行文字(否则文件将被下次导出覆盖),最后将生成的AndroidManifest.xml拷贝到Unity Plugins/Android下面即可(如需修改AndroidManifest.xml,请直接修改Unity中版本,然后重新导出工程)。


build.gradle

这个文件在Gradle工程编译打包的配置文件,详细说明请看android gradle配置详解 && Gradle for Android第一篇(从Gradle和AS开始)。


接入SDK

使用Gradle打包

可以选择在Android Studio中进行打包,在Android Studio右上角点击Gradle会弹出如下界面(所有可以执行的小任务,双击即可构建选中的任务)。

当然如果嫌弃Android Studio速度慢,也可以配置本地Gradle环境变量,使用Gradle命令行进行自动打包:
– 导航到工程的根目录下;
– 点击shift键同时按下鼠标右键,选择在此处打开命令窗口;
– 输入对应的gradle命令即可(Android Studio Gradle界面中所有出现任务)。


总结

  • Unity中进行开发,并且只提供与SDK对接的接口

  • Android Studio接入SDK并打包

上面的方式是项目获取了极大的灵活性,而且使用到自动构建神器(Gradle),为将来接入多个SDK多发布平台,修改build.gradle文件即可,最理想的情况下,甚至无需改动Unity工程。


以上是关于Unity使用gradle接入sdk和打包的主要内容,如果未能解决你的问题,请参考以下文章

Unity接入多个SDK的通用接口开发与资源管理

Unity 报错之 接入YomboTGSDK后打包报错:mainTemplate.gradle needs to be updated(property ‘unityStreamingAssets‘)

Unity 接入Android SDK-小米sdk

FireBase SDK接入的坑

Unity apk打包失败的解决方法

[Unity] 使用Gradle系统打包