前言:Unity项目,项目需求接入推送SDK,选择的是 友盟的U-Push SDK。在Android Studio接入SDK后再把unity项目打包导入Android Studio。本篇主要讲述如何将unity导出的包作为项目的一部分导入Android Studio工程。
本人熟悉unity但是没怎么用过Android Studio 。所以即便可以参考网上博客(包括友盟官方SDK文档),但对AS小白来说仍有些不尽详细。所以重头整理记录下来,一是以后再用做个参考;二是给同样不熟悉AS的小伙伴参考。
Unity版本: Unity 2019.2.11f1
Android Studio版本:3.0
在这之前你需要注意:Unity -PlayerSetting-OtherSetting-Identification-Package Name (包名) 不要有大写,最好和Android Studio侧的项目包名一致。
一、Unity导出AS包
1.Unity中File-Build Setting 勾选 Export Project。然后Expot导出AS包。
导出AS项目目录如下:
其中重点关注文件包含:
1. libs文件夹 :Libs文件夹存放的是Unity项目中Plugin下面的jar包,以及Unity项目Export时生成的对应的jar(unity-classes.jar)。(需要导入AS)
2.src/main下的assets文件夹:assets文件夹 中是Unity项目中生成的所有资源和数据。(需要导入AS)
3.src/main下的Java文件夹:Java文件夹中只有一个java脚本,可以看做是unity项目在AS的入口Activity。(需要导入AS)
4.src/main下的jniLibs文件夹:jniLibs文件夹中是Unity自动生成的so以及第三方依赖的so文件。(需要导入AS)
5.src/main下的AndroidManifest.xml 文件:AndroidManifest.xml文件是Android应用程序的清单文件,是整个Android应用程序的描述文件。(需要对比修改AS中AndroidManifest.xml 内容)
6.src/main下的res文件夹:Android应用程序相关资源。(\res\values文件夹下string.xml内容替换AS中string.xml内容,其他看自己需求替换也可不用管)
7.proguard-unity.txt文件:proguard-unity.txt文件是Unity混淆文件,在Unity中如果没有修改过,这里只会生成Unity自身的混淆逻辑,第三方jar的混淆需要自行添加。
二、开始将Unity导出的文件对应导入AS项目
1.打开需要导入Unity项目的AS项目,或如下新建AS项目(最好保持包名与unity包名一致)
新建项目目录如下:
2.将unity导出的Jar包(libs文件夹下)导入到AS项目中libs下,选中jar包右键点击选择Add as Library或者File -> Project Structure -> Dependencies -> "+" -> jar dependence ->选择导入的jar包 -> ok。(如果unity中没有其他如第三方的jar包,一般就只有一个unity-classes.jar)
有重复的话删掉即可。
3.将src/main下的assets文件夹整体导入到AS项目src/main目录下。
4.将src/main下的jniLibs文件夹整体导入AS项目src/main目录下。
4.使用src/main下的java文件夹替换AS项目src/main目录下 java文件夹(如果AS项目已集成第三方SDK,也可以直接把Unity侧java文件夹下脚本直接添加到AS侧java下,前提是两侧包名一致,然后在unity的java脚本里的Oncreate里初始化SDK)。
5.重新配置AS项目中src/main下的AndroidManifest.xml。如果是新建的AS项目你可以直接把unity导出的src/main下的AndroidManifest.xml中<activity android:.....以下语句至结束, 全部复制粘贴到AS项目中src/main下的AndroidManifest.xml中。如果你AS项目中有其他集成,需要自行对比综合到AndroidManifest.xml。
6.从unity导出的src/main/res/Value下的strings.xml中复制一句代码到AS中src/main/res/Value下的strings.xml。
7.Build -- Make Project。不报错就OK了。报错的话就再看看以上哪一步有问题。
有问题可留言。