type
status
date
summary
tags
category
icon
🔍 问题描述
最近,公司的海外渠道商想要项目的安卓包作为审核包,但是在距离上一次给他们包的这期间,团队因为一些原因升级了Unity的版本。
当我在Android Studio上接完了SDK,将构建后的aar包导入Unity工程,进行功能测试,然后将项目打包放到实机上进行测试时,应用出现了闪退的现象。在打开了Android Studio查看日志后,我发现了下图中的报错。
Unity版本:2021.2.18f1
💡 解决方法
使用Unity引擎安装路径下的class.jar文件替换掉Android工程中该文件。首先,在Unity Hub中找到当前版本Unity的安装路径。对于我来说,我将Unity安装在了D盘,并且使用的是Il2CPP的方式打包,于是在路径:
D:\unity\2021.2.18f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Development\Classes
下找到class.jar文件,将该文件导入android工程中替换掉原来的class.jar文件。然后通过build project导出aar包,替换掉原来的aar包后解决了这个问题。📔 总结分析
可以理解为class.jar中包含了Unity与Android交互的桥梁,其中包含了交互所必须的一些重要的接口和类,例如JNIBridge类,UnityPlayer类等(UnityPlayer报错也可以考虑这个原因),具体可以在Android Studio中打开查看。
而每个unity版本对应着一个不同的class.jar。在之前的打包过程中,我使用的是2019版本Unity的class.jar文件,所以打包后无法识别出
SwappyDisplayManager
这个类。- 作者:Felix
- 链接:felix1125.com/article/692de799-e77f-4fc4-939e-a73c65b8ae68
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章