背景:项目使用的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图标后不会立即闪退了,