Android 合并unity3D AR项目踩坑详解

时间:2024-04-05 11:52:10

拿到unity打包出来的Android 项目,项目结构如图:

Android 合并unity3D AR项目踩坑详解

我们可以以导入moudle的形式把这个项目导入到我们的Android studio中,这个是一个新建的项目:

Android 合并unity3D AR项目踩坑详解


之后根据步骤导入ARDemo

Android 合并unity3D AR项目踩坑详解


选择你要导入的ardemo:


Android 合并unity3D AR项目踩坑详解


选择“ok”,然后点“Finish”就导入进来了:

Android 合并unity3D AR项目踩坑详解


接下来我们把ardemo变为library的形式,1,把application 改为 library    2 把applicationId 注释掉   3 修改为自己的构建版本参数

Android 合并unity3D AR项目踩坑详解




之后同步一下项目,有可能会报Error:Execution failed for task':app:processDebugManifest'的错误,可以把这句加上“tools:replace="android:icon, android:theme,android:allowBackup”,注意是哪个清单文件,别加错了哦,可参考:http://m.blog.csdn.net/article/details?id=51441806

Android 合并unity3D AR项目踩坑详解

同步一下可以看到ardemo的图标变为了library的图标

Android 合并unity3D AR项目踩坑详解


接下来就修改ardemo的AndroidManifest文件,注意不要改app moudle里面的清单文件,把这个注释掉就行,如果不注释,安装时会有两个应用logo。还有一个就是构建版本的问题,改下或者注释掉就行,如图

Android 合并unity3D AR项目踩坑详解



Android 合并unity3D AR项目踩坑详解


同步一下项目,然后把这句添加进去


Android 合并unity3D AR项目踩坑详解


再同步一下项目,此时项目报错Error:Failed to resolve: :VuforiaWrapper:

<a href="openFile:D:/lhq/Download/MergeARDemo/app/build.gradle">Open File</a>:

Android 合并unity3D AR项目踩坑详解


这时点击一下这个“open File”但是没有一点反应,不慌,看下在哪有这个文件“VuforiaWrapper”,最后在lib里面找到了这个文件

Android 合并unity3D AR项目踩坑详解

原来是aar文件,找到问题所在就好办了,如果不懂aar文件的请参考这:https://blog.csdn.net/xiexiangyu92/article/details/75200091

这个问题是无法解析library里面的aar文件,这个时候只需要在app 里面的build.gradle里面加上这句

repositories{
    flatDir{
        dirs 'libs','../ardemo/libs'
    }
}

就行了,可参考这个:https://blog.csdn.net/qq_35522272/article/details/70214962

Android 合并unity3D AR项目踩坑详解


接下来就是跳转到unity界面了,写个简单的跳转Button,

Android 合并unity3D AR项目踩坑详解


导入的包是你自己library里面的UnityPlayeractivity,千万别导错包,不然会闪退报这个类找不到的错误,点击按钮就直接进入Unity界面了,

Android 合并unity3D AR项目踩坑详解


Android 合并unity3D AR项目踩坑详解


还有就是闪退和视频不能播放的问题,如果出现了闪退的问题,可能是横竖屏的问题,在Unityplayeractivity这个类的清单文件写上支持横竖屏的代码即可,如果是AR视频不能播放,应该是Android studio默认压缩的问题。

如果不能播放,logcat出现黄色字体警告,Unity: AndroidVideoMedia OpenExtractor: file is compressed, not supported

Android 合并unity3D AR项目踩坑详解


此时只需要将ardemo里面的build.gradle的一行代码复制到app的build.gradle下即可

Android 合并unity3D AR项目踩坑详解


复制到app的build.gradle

Android 合并unity3D AR项目踩坑详解


这样就解决了视频不能播放的问题。

如果有什么错误,欢迎指出,一起学习,共同进步!