Unity 导出 Gradle 工程(Android Studio)
本文源链接:http://blog.****.net/qq393830887/article/details/53164464
注意
- 作者也是出无奈才开始研究 Android Studio,一点都不想用这玩意
- 发现使用 Gradle Build 的时候,还会因为内存不足失败,我也是醉了
起源
- Unity 5.x 开始支持使用 aar 文件
- Unity 5.4 开始导出 Gradle 工程
- Eclipse 不再维护,很多 SDK 的文档都已经涉及到 Android Studio
对比
Eclipse
- 界面比较老土,但是看 ADB 的话,界面更工整
- 资源 .so .jar 得分别放在不同的目录,好处就是方便修改
- jar 可以根据需要代码选择导出(虽然貌似也可以选择 AndroidMainifest 等资源一起导出到 jar,但由于一直未尝试不多说)
Android Studio
- 界面比较时尚,但是 ADB 信息真心不想看
- 支持 ,方便查看和对比 apk
- 都导出到一个 aar,不过对于重复资源和 .so 真好奇怎么办
开始
Unity 目录结构
- 非常简洁的目录,并没有使用资源(Android 开发不是我擅长的呀)
- 没搞懂这个是什么的看这个吧 Unity3D使用Native Plugins(快速便捷接入SDK) —— Java篇
导出Gradle
- Build System 选择 Gradle,这玩意 Unity 5.4 开始才支持的,没有就升上去吧,别去这折腾 ADT
- 然后选择 Export Project,不选择的话就会变成使用 Gradle 来生成 APK,看官网的说法就是这玩意相对 ADT 更严格 Gradle for Android
Build With Gradle
- 这算是个临时想到的测试
- 刚提到严格,就真的严格了,难怪之前我用 Android Studio 发的 release unsigned.apk 提示:安装失败(-103)安装包解析出错
- 这个倒是简单,勾选 Development 就解决了
- 不过发现那个 restart 的 AndroidManifest 的包名不可以取和代码相同的 package 名称,虽然在 ADT 上过了,但是在 Gradle 上不过,改了就正常了
导出的目录
- 整个目录还是挺清晰的
- 这里对比一下 ADT 的目录,ADT 的目录一直都是 Import 形式进来的
Open an existing Android Studio project
- 对于那些强迫症的,可以选择 OK,直接使用最新的
- 一般项目的话应该都是使用 local 的,所以这里应该 Cancel
Android Studio 工程
- 工程相关的就没什么好讲的了,我也不清楚,毕竟也不需要导出工程
- 唯一需要用 Android Studio,大部分都是生成 aar,而不是生成 apk
Restart 对应的 aar
- 一共生成了2个文件,如果没有 Build - Make Project 的话,2个文件也就1K,不清楚原因
- 解压缩2个文件,没看错,解压缩,会发现唯一不同的点是在 classes.jar,这文件记录了是否是 Debug 模式
- 其实在 Unity 4.x 的时候,就有接过 aar 的 SDK,那时候的做法就是解压缩,然后将文件拷贝到原本对应的位置,真心就这么简单
jar 改用 aar
- ADT 通过
- Gradle 通过
Android Studio 改用 aar 的工程
- 注意已经没有了单独的依赖的库文件夹
- 取而代之的是 Restart-release.aar,神奇的是 Android Studio 识别不出来这个 aar
- 然而 Build APK 安装运行一切正常(除了第一次 Build 的时候莫名其妙的报错,释放点内存就行了,还以为只会在 Unity 中出现呢)