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 目录结构

导出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 中出现呢)

来源:网络


智能推荐

android studio gradle报错

电脑重启后 android studio就报如下错误 分享一下,一度想放弃重装系统: 然后也没有任何错误信息 先提升了gradle版本,无效; 在gradle.properties文件中添加参数:org.gradle.jvmargs=-Xmx512m,重启,clean没用; 接着删除C:\Users\用户名\.gradle文件,重启as、clean没用; 最后重装as,导入项目还是报同样的错(想新...

Android studio 报错gradle

Android studio 报错gradle android studio 报错:Failed to open zip file. Gradle’s dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) 首先需要确认,我们的gradle的版本和我们grad...

Android Studio Gradle报错

因为不常接触Android Studio,今天遇到的问题做个简单的记录 从AS创建了一个空项目以后,build窗口先跳出来了一个报错: Could not install Gradle distribution from http://xxxx 报错很好理解,就是说从这个链接安装不了gradle。但是我明明挂着梯子呢,试着点了一下这个链接,直接就开始下载对应的gradle了,什么鬼啊???AS不是...

Android:Gradle,Gradle与Android Studio

前言 我们用Android Studio创建项目和发布项目时,都会用到Gradle。那么Gradle到底是什么? 我们需要了解的概念有:构建工具,gradle wrapper,gradle等 一,构建工具? Eclipse时期:Eclipse是一种 IDE(集成开发环境),为了开发Android应用,Google开发了 ADT(Android Developer Tools); ...

Unity安卓开发(四)Android Studio导出aar包,并在Unity使用

上一篇已经介绍了Android Studio导出Jar包、扩展Unity的MainActivity、Unity Android互相调用 这篇跟上篇差不多,但是Unity使用的是Android Studio导出的aar包。 aar相当于Android Studio把Unity要用到的资源(libs、res等)压缩到aar里,aar可以说就是一个压缩包。 根据上一篇的操作后,Android Studi...

猜你喜欢

Android Studio配置gradle(gradle-properties)

    最近在学习Android开发,安装完Android Studio后,发现demo无法运行在虚拟机上,后来发现是配置文件的问题。 正确的配置文件(build.gradle): 正确的配置文件(gradle/wrapper/gradel-wrapper.properties): 然后点击gradle的编译按钮:   编译完毕: 选好安卓虚拟机的型号: 即可运行应用...

unity导出Android

unity导出Android 1. 安装JDK 2. 安装Android SDK 3. 打开unity项目 1)设置Preferences中的JDK和SDK的目录 2)导出项目 1. 安装JDK java的jdk下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 或者:htt...

android studio导出apk

转自 https://blog.csdn.net/u013524014/article/details/71537308   在android studio导出的apk分为4种,一种是未签名调试版apk,一种是未签名发行版apk,一种是已签名调试版apk,还有一种是已签名发行版apk。以下将介绍这4种apk如何导出。 一、调试版apk与发行版apk区别 Debug通常称为调试版...

网络应用层概述 -- 概念与结构

1. 概念 应用层,在集成的是7层模型中的表示层,会话层,应用层的总和,在TCP/IP三层模型中的最高层,其实现的协议包括TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet等   作用: 每个应用层协议都是为了解决某一类应用问题,而问题的解决是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。 2 . 层...

自定义控件之绘图篇(一):概述及基本几何图形绘制

一、Paint与Canvas 像我们平时画图一样,需要两个工具,纸和笔。Paint就是相当于笔,而Canvas就是纸,这里叫画布。 所以,凡有跟要要画的东西的设置相关的,比如大小,粗细,画笔颜色,透明度,字体的样式等等,都是在Paint里设置;同样,凡是要画出成品的东西,比如圆形,矩形,文字等相关的都是在Canvas里生成。 下面先说下Paint的基本设置函数: paint.setAntiAlia...

问答精选

delete a specific row with where clause in sqlite for android

I try to delete a specific row with where clause in sqlite for android but it not working plz any body help. try this :...

UIImageview Programmatically in swift

I'm just trying to create a UIImage View programmatically, I have a new view and I tried doing this This code doesn't work. please help me as soon as possible This is for image with 100 height and 100...

nsISocketTransportService using Firefox addon sdk

I'm trying to use Firefox to read the SSH banner. ie. when you initially connect to an SSH server the server sends you its banner, identifying the server software and you send the SSH server your bann...

Unable to customize html range input

I need to customize the range input. The slider must be green for the lower part(the area which the thumb has moved) and the remaining should be grey. Basically I have changed the default styles from ...

Counting the number of occurrences

I have the following problem. I want to count the number of occurrences of values that are smaller or equal to zero. Example in the following data I have 3 occurrences 1(0,0,0),2(-1,-2),3(0,0). Is the...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答