Unity5.5.4f1导出Gradle工程到AndroidStudio3.1.3相关

Unity5.5.4f1导出Gradle工程到AndroidStudio3.1.3(随笔)


一开始遇到各种报错,后来发现改动却很少,原来我巧妙的绕了个圈。

一、AS3导入Unity导出的常规gradle工程

1.AndroidStudio安装,使用Custom安装,自定义sdk目录,安装完成后设置gradle的离线路径。

2.Unity导出Gradle工程,注意jdk不要太新我用的是jdk18.x.x,sdk的tools不要太新使用24.x.x版本,ndk使用推荐版本ndk-e10-xx,正常导出问题不大。

3.AndroidStudio导入unity导出的项目时,必须选择Import project(Gradle, Eclipse ADT, etc),这样会自动帮你完善gradle工程目录结构。导入时提示use the Gradle wrapper选择OK吧,迟早都要下载的,进入之后估计会直接看到:

错误1:“No cached version of com.android.tools.build:gradle:2.1.0 avalilable for offline mode”。

原因:本地没有下载gradle插件版本为2.1.0的。这里有两个概念gradle版本和gradle插件版本。

解决方案:打开./gradle/wrapper/gradle-wrapper.properties,修改distributionUrl中的xxx/gradle-4.4-all.zip为xxx/gradle-2.10-all.zip,点击右上方快捷菜单Sync Project xx 重新同步(如果不行就重启AS),此时会自动下载gradle-2.10-all.zip,下载完成后编译成功。

4.这样,AS3中可以正常运行Unity导出的gradle工程了,告一段落。


二、AS3制作AndroidLibrary(jar包) 导入Unity

1.制作过程参考这个链接


三、Unity再次导出Gradle工程(包含plugins中的jar包),AS3中编译执行

1.AS3导入后先按前面的方法修改gradle-wrapper.properties中gradle版本号为2.10,编译后报错:

错误2:“Error converting bytecode to dex: Cause com.xx.xx.DexException: Multiple dex files define Lcom/xx/xx/BuildConfig”。

原因:工程中包含多个BuildConfig类,查看刚才导出的jar包可以发现里面竟然有一个。

解决方案:回到Unity的Plugins下的lib文件夹下,使用命令行将BuildConfig文件从jar中删除,重新导出gradle工程,修改gradle-wrapper.properties后,编译成功。


四、AS3中其他问题

1.使用腾讯GCloudVoice时运行后无法应用启动,查看Logcat发现有错误抛出。

错误3:“system err : load library GCloudVoice faild !!!”。

原因:GCloudVoice中包含*.so文件导入AS3后路径在libs下,而且gradle并未对其设置。

解决方案:将*.so文件目录搬移到GCloudVoice/src/main/下,或者在build.gradle的android/.sourceSets/main 添加jniLibs.srcDirs = ['libs']即可。如果还不行,参考这里。

你可能感兴趣的:(Unity5.5.4f1导出Gradle工程到AndroidStudio3.1.3相关)