Unity 导出 Gradle 工程(Android Studio)


本文源链接:http://blog.csdn.net/qq393830887/article/details/53164464

注意

  • 作者也是出无奈才开始研究 Android Studio,一点都不想用这玩意
  • 发现使用 Gradle Build 的时候,还会因为内存不足失败,我也是醉了

起源

  • Unity 5.x 开始支持使用 aar 文件
  • Unity 5.4 开始导出 Gradle 工程
  • Eclipse 不再维护,很多 SDK 的文档都已经涉及到 Android Studio

对比

Eclipse

  1. 界面比较老土,但是看 ADB 的话,界面更工整
  2. 资源 .so .jar 得分别放在不同的目录,好处就是方便修改
  3. jar 可以根据需要代码选择导出(虽然貌似也可以选择 AndroidMainifest 等资源一起导出到 jar,但由于一直未尝试不多说)

Android Studio

  1. 界面比较时尚,但是 ADB 信息真心不想看
  2. 支持 ,方便查看和对比 apk
  3. 都导出到一个 aar,不过对于重复资源和 .so 真好奇怎么办

开始

Unity 目录结构

Unity 导出 Gradle 工程(Android Studio)_第1张图片

  • 非常简洁的目录,并没有使用资源(Android 开发不是我擅长的呀)
  • 没搞懂这个是什么的看这个吧 Unity3D使用Native Plugins(快速便捷接入SDK) —— Java篇

导出Gradle

Unity 导出 Gradle 工程(Android Studio)_第2张图片

  • Build System 选择 Gradle,这玩意 Unity 5.4 开始才支持的,没有就升上去吧,别去这折腾 ADT
  • 然后选择 Export Project,不选择的话就会变成使用 Gradle 来生成 APK,看官网的说法就是这玩意相对 ADT 更严格 Gradle for Android

Build With Gradle

  • 这算是个临时想到的测试

Unity 导出 Gradle 工程(Android Studio)_第3张图片

  • 刚提到严格,就真的严格了,难怪之前我用 Android Studio 发的 release unsigned.apk 提示:安装失败(-103)安装包解析出错
  • 这个倒是简单,勾选 Development 就解决了
  • 不过发现那个 restart 的 AndroidManifest 的包名不可以取和代码相同的 package 名称,虽然在 ADT 上过了,但是在 Gradle 上不过,改了就正常了

导出的目录

Unity 导出 Gradle 工程(Android Studio)_第4张图片

  • 整个目录还是挺清晰的

Unity 导出 Gradle 工程(Android Studio)_第5张图片

  • 这里对比一下 ADT 的目录,ADT 的目录一直都是 Import 形式进来的

Open an existing Android Studio project

Unity 导出 Gradle 工程(Android Studio)_第6张图片
Unity 导出 Gradle 工程(Android Studio)_第7张图片

  • 对于那些强迫症的,可以选择 OK,直接使用最新的
  • 一般项目的话应该都是使用 local 的,所以这里应该 Cancel

Android Studio 工程

Unity 导出 Gradle 工程(Android Studio)_第8张图片Unity 导出 Gradle 工程(Android Studio)_第9张图片

  • 工程相关的就没什么好讲的了,我也不清楚,毕竟也不需要导出工程
  • 唯一需要用 Android Studio,大部分都是生成 aar,而不是生成 apk

Restart 对应的 aar

Unity 导出 Gradle 工程(Android Studio)_第10张图片Unity 导出 Gradle 工程(Android Studio)_第11张图片

  • 一共生成了2个文件,如果没有 Build - Make Project 的话,2个文件也就1K,不清楚原因
  • 解压缩2个文件,没看错,解压缩,会发现唯一不同的点是在 classes.jar,这文件记录了是否是 Debug 模式
  • 其实在 Unity 4.x 的时候,就有接过 aar 的 SDK,那时候的做法就是解压缩,然后将文件拷贝到原本对应的位置,真心就这么简单

jar 改用 aar

Unity 导出 Gradle 工程(Android Studio)_第12张图片

  • ADT 通过
  • Gradle 通过

Android Studio 改用 aar 的工程

Unity 导出 Gradle 工程(Android Studio)_第13张图片

  • 注意已经没有了单独的依赖的库文件夹
  • 取而代之的是 Restart-release.aar,神奇的是 Android Studio 识别不出来这个 aar
  • 然而 Build APK 安装运行一切正常(除了第一次 Build 的时候莫名其妙的报错,释放点内存就行了,还以为只会在 Unity 中出现呢)

你可能感兴趣的:(Unity3D,Android,Unity3D使用Native)