文章目录
- 相关教程链接
- 错误收集
- 1. 父级项目与所使用的扩展插件的 最小SDK版本不匹配。
- 2. 明明所调用的A库中已经包含了一个B库。但是在使用A库的时候,提示B库不能找到
- 3. 提示无法解决 错误- ERROR: Failed to resolve: :VuforiaWrapper:。
- 4. 提示AndroidManifest.xml 文件的 tools:replace="android:debuggable 错误。
- 5. 当打包成功,在手机端运行时候,直接闪退,并且 使用 Logcat 发现错误为 Unity: Unable to find main
- 6. Unity 的 软件包 在 集成在 其他程序之后,如果 Unity 出错闪退,会导致 主程序也 闪退。
相关教程链接
Using Unity as a library in native iOS/Android apps
将Unity整合为原生Android应用程序中的库
将Unity整合为原生IOS应用程序中的库
腾讯- 如何将Unity以库形式集成到原生iOS和Android应用
错误收集
1. 父级项目与所使用的扩展插件的 最小SDK版本不匹配。
解决方案: 需要修改 app 的 build.gradle 文件中的 minSdkVersion 字符 为 符合的版本号。
2. 明明所调用的A库中已经包含了一个B库。但是在使用A库的时候,提示B库不能找到
解决方案: 这个是因为B库虽然被A库使用,但是他们两个是独立的。所以A库中有B库的依赖情况下。 在使用A库的同时也得 引入 相应的 B 库。
改为在 app 的 build.gradle 文件中 的 dependencies 中加入字段:
implementation(name: 'VuforiaWrapper', ext:'aar')
并且 相应的 VuforiaWrapper arr 库要放在 Lib文件夹中。
3. 提示无法解决 错误- ERROR: Failed to resolve: :VuforiaWrapper:。
解决方案: 这个是因为 引入了 VuforiaWrapper 的 arr 库,但是没用告诉库的相对文件夹位置。所以还需要添加代码:
repositories {
flatDir {
dirs 'libs'
}
}
4. 提示AndroidManifest.xml 文件的 tools:replace="android:debuggable 错误。
解决方案: 这个是因为所使用的插件B(也就是VuforiaWrapper)中已经设置了 tools:replace=“android:debuggable” 的值。 会与本来项目冲突。
所以需要修改 app 的 AndroidManifest.xml 文件中的内容中的 application 字段。
加入:android:debuggable="true" tools:replace="android:debuggable"
5. 当打包成功,在手机端运行时候,直接闪退,并且 使用 Logcat 发现错误为 Unity: Unable to find main
解决方案: 这个是因为Unity打包出来的包体 的 ndk 目前使用来看只支持 armeabi-v7a
(其他还需要测试)。而用主程序包打包之后会打成多个 ndk 支持版本。所以要在打包之前做些限制。
即在主包 的 build.gradle 文件中 加入
splits {
abi {
enable true
reset()
include "armeabi-v7a"
}
}
6. Unity 的 软件包 在 集成在 其他程序之后,如果 Unity 出错闪退,会导致 主程序也 闪退。
解决方案:
- 需要Unity 些一个 退出的方法,然后 手动调用原生的这个退出代码。
// 彻底结束Unity 进程 需要导入 import android.os.Process;
public int unityKill() {
System.out.println("结束Unity进程");
Process.killProcess(Process.myPid());
return 0;
}
-
并且重写Unity的退出方法;
@Override protected void kill() { // Process.killProcess(Process.myPid()); // System.out.println("->Kill"); }
3. 修改 AndroidManifest.xml 文件。在文件的 activity 字段中添加。
android:process="e.unity3d"
此字段 使Unity 可以独立运行在一个进程中。他的闪退什么的,不会影响到主程序的进程。