Unity应用在车机上启动有概率黑屏的解决方案

问题描述

最近将游戏适配到车机上(Android系统),碰到了一个严重bug,启动的时候有概率会遇到黑屏,表现就是全黑,无法进入Unity的场景。

经过查看LogCat日志,也没有任何报错,也没有任何的Unity日志输出。

经过比较正常的时候和非正常的时候的日志,发现正常的时候会有这条日志。

ActivityTaskManager: Displayed com.xxx.xxx/com.unity3d.player.MainActivity: +285ms

其中MainActivity是继承于UnityPlayerActivity的我们自己写的类。

而黑屏的时候没有这条日志,也就是并没有启动成功UnityPlayerActivity,在 UnityPlayerActivity生命周期中写了日志,发现有执行到,但是表现就是黑屏。

排查问题

经过了以下几种方式排查:

  • 删除接入的第三方SDK:黑屏
  • 删除Plugin/Android下的所有代码:黑屏
  • 直接Unity出包:黑屏
  • 删除所有场景,新建了一个新场景:黑屏
  • 升级Unity版本:黑屏
  • 修改targetsdk为30、31、32、33、34:黑屏
  • jdk改为8和11:黑屏
  • 新建一个Unity工程:正常不会黑屏
  • 将新建的工程的ProjectSetting文件覆盖到黑屏的工程:正常不会黑屏

经过对问题的排查,最终定位到了应该是ProjectSetting的某个设置导致的,但是设置那么多,于是继续排查,将空工程的配置一项一项修改为黑屏的设置,最终排查到了这个选项导致的。

解决方案

将Resizable Window勾选上,会有概率黑屏,Unity场景都进不了,Unity的相关日志也没有任何输出。取消勾选"Resizable Window"这样直出apk是没有再碰到黑屏问题了。

但是接入了第三方SDK后,会出现了别的问题,也就是应用尺寸不对了。

经过尝试,修改了AndroidManifest.xml的下面选项,则目前结果正常了。

将主Activity加上android:resizeableActivity="true",这样既可解决。

 上面的应该是对于会改变应用尺寸的系统,可能需要这么操作才会避免黑屏问题,猜测是因为系统的代码有bug导致需要这么处理规避问题,如果你也碰到这个问题,可以进行如上尝试。

总结

如果你在车机上碰到Unity应用有概率黑屏,可以尝试如下设置:

  1. 在PlayerSetting里将Android下的Resizable Window取消勾选,注意是不要勾选
  2. 在AndroidManifest.xml里将主Activity的android:resizeableActivity设置为true

这样可能能解决你们的问题。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼蛋-Felix

如果对你有用,可以请我喝杯可乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值