背景:项目使用的Unity版本为5.4.4f1,Android targetSdkVersion为22,接到通知要求targetSdkVersion要升级到28(至少为26)
实践:直接将targetSdkVersion从22改为28,通过Unity Build生成android apk包,在不同手机上安装运行
问题:在小米cc9e手机上,点击app图标后立即闪退,表现上没有任何提示
定位:使用命令行 adb logcat > log.txt,将android日志导出到log.txt文件中,当然,如果机器上的android开发环境完善,可以直接在eclipse或者Android Studio中直接查看日志
通过排查,看到一行信息
E/Unity: Unable to query for permission: Fragment null must be a public static class to be properly recreated from instance state
在Google上查到这是Unity的一个bug,Unity程序启动后申请不到权限就自己杀掉进程了,Unity在2018版本之后对此进行了修复,但是对于已经上线了的项目,升级Unity版本的代价太大,风险也很高,升级Unity版本显然不现实
解决方案:想起Unity对应的版本基本都有对应的补丁包,于是下载了Unity5.4.4p1进行尝试,最终Build出来的apk包安装后,点击app图标后不会立即闪退了,unity补丁包下载网址
问题:虽然不会闪退了,但是应用程序启动后一直黑屏,没有任何提示
定位:使用命令行adb logcat > log1.txt,将android日志导出到log1.txt文件中,通过排查,看到一行信息

本文记录了Unity项目从API 22升级到28过程中遇到的闪退、黑屏等问题,包括权限申请、动态权限管理、Apache HTTP客户端弃用等挑战,以及对应的解决方案和代码调整。

2582

被折叠的 条评论
为什么被折叠?



