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的例子吧。

  1. 新建好的工程,打开Project视图,然后点击工具栏上的File->New->ImportModule。这里点击的是最顶部工具栏上的File。

  2. 导入模块,这里只需要导入unityLibrary模块,launcher模块不需要导入。因为我们自己新建了一个android项目,只需要在新建项目的activity里显示unityActivity就行了。
    在这里插入图片描述

  3. 导入成功后,选中app模块,右键找到Open Module Settings设置,将unityLibrary设置成app模块的依赖项。
    在这里插入图片描述

  4. 在MainActivity.java中添加如下代码。这里就最简单的代码,在默认activity里打开UnityActivity,别跟我说为啥,我尼玛会生气。
    在这里插入图片描述

  5. 点击Sync Project with Gradle Files,然后进行build,build前你得把模拟器或者手机接好啊,不然build个卵。我这里用的夜神模拟器,版本7.0.0.6,还是挺好用的。

  6. 上面直接build肯定是不成功的,毕竟Unity导出的android工程和android studio自己创建的,配置文件还是有些区别的,嫡庶还是存在嫌隙的。接下来我们开始解决错误,不多,请拿包瓜子继续嗑瓜,继续撸,继续看,我猜哥们儿的手都起茧了吧,节制啊。

排错

  1. 第一次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"

在这里插入图片描述

  1. 修改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. 终于,终于,啊啊啊,成功了。
    在这里插入图片描述

感言

终于写完了,作为一个小白,看网上大佬们写的还是有点头疼。于是按照自己的步骤整理了一遍,有不懂的可以留言。

问题

1.为啥在strings.xml添加 game_view_content_description 这个值就能解决第二个错误?

欢迎致电!*************

猜你喜欢

转载自blog.csdn.net/zyxyuting/article/details/115321941