Android studio4.0 内嵌 UnityActivity
用最简单方法嵌入UnityActivity
哥们我在网上牌子都翻烂了,各种各样的姿势看的我眼花缭乱,最终觉得野花还是挺香的。自己动手摸索起来了!
首先,得导出Unity Android工程
导出工程不多说,看图写话!这里External Tools里的Android环境全是用Unity Hub手动导入的,完全没有问题。当然你也可以自己去下载SDK,JDK,NDK这些玩意,小白的话不折磨个半天是弄不明白的。但哥们我还是啰嗦一句,我们是Unity3d程序,建议直接用官方爸爸提供的Hub去安装Android环境吧。
我这里使用的是Unity2019.3.4f 导出的Unity android工程,unityLibrary目录下有两个模块:
- launcher
- unityLibrary
Unity官方声明这样是为了把Unity的项目完全剥离出来,方便之后二次处理,我这里就只使用unityLibrary。
特别注意:该项目中是没有gradle/wrapper/gradle-wrapper.properties该文件架构的。所以别傻傻的去找了。
其次,新建android studio工程
新建android工程,我这里android studio 版本是4.1.2,菜鸡互啄,新建完全Next——>Next。当然,这里你得懂得起android studio最起码的知识,新建工程,导入模块,模块依赖对吧。不然还是先去看看android sudio的第一个hello world的例子吧。
-
新建好的工程,打开Project视图,然后点击工具栏上的File->New->ImportModule。这里点击的是最顶部工具栏上的File。
扫描二维码关注公众号,回复: 13033733 查看本文章 -
导入模块,这里只需要导入unityLibrary模块,launcher模块不需要导入。因为我们自己新建了一个android项目,只需要在新建项目的activity里显示unityActivity就行了。
-
导入成功后,选中app模块,右键找到Open Module Settings设置,将unityLibrary设置成app模块的依赖项。
-
在MainActivity.java中添加如下代码。这里就最简单的代码,在默认activity里打开UnityActivity,别跟我说为啥,我尼玛会生气。
-
点击Sync Project with Gradle Files,然后进行build,build前你得把模拟器或者手机接好啊,不然build个卵。我这里用的夜神模拟器,版本7.0.0.6,还是挺好用的。
-
上面直接build肯定是不成功的,毕竟Unity导出的android工程和android studio自己创建的,配置文件还是有些区别的,嫡庶还是存在嫌隙的。接下来我们开始解决错误,不多,请拿包瓜子继续嗑瓜,继续撸,继续看,我猜哥们儿的手都起茧了吧,节制啊。
排错
- 第一次build将出现以下错误。抓重点“ java.lang.UnsatisfiedLinkError”,无非就是少了一些库的引用而已。在app模块的build.gradle中添加红框内的配置信息。当然其他基础配置要保持一致,
如:
compileSdkVersion 30
minSdkVersion 19
targetSdkVersion 30
versionCode 1
versionName 1.0
2021-03-30 14:11:47.661 7154-7154/com.snoopy.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.snoopy.myapplication, PID: 7154
java.lang.Error: FATAL EXCEPTION [main]
Unity version : 2019.3.4f1
Device model : HUAWEI LIO-AN00
Device fingerprint: HUAWEI/LIO-AN00/LIO-AN00:7.1.2/LIO-AN00/700201021:user/release-keys
Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.snoopy.myapplication-2/base.apk"],nativeLibraryDirectories=[/data/app/com.snoopy.myapplication-2/lib/x86, /system/lib, /vendor/lib]]] couldn't find "libmain.so"
- 修改build.gradle配置文件需要点击Sync,然后在进行build。等待苦逼的结果!哎呀,我尼玛又有错。这个错,我在网上翻了很多只知道怎么改,但不知什么意思。知道的可以在评论区附上,感谢各位春风亭大佬,光顾我这千金阁!
com.snoopy.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.snoopy.myapplication, PID: 7728
java.lang.Error: FATAL EXCEPTION [main]
Unity version : 2019.3.4f1
Device model : HUAWEI LIO-AN00
Device fingerprint: HUAWEI/LIO-AN00/LIO-AN00:7.1.2/LIO-AN00/700201021:user/release-keys
Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.snoopy.myapplication/com.unity3d.player.UnityPlayerActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x0
- 终于,终于,啊啊啊,成功了。
感言
终于写完了,作为一个小白,看网上大佬们写的还是有点头疼。于是按照自己的步骤整理了一遍,有不懂的可以留言。
问题
1.为啥在strings.xml添加 game_view_content_description 这个值就能解决第二个错误?
欢迎致电!*************