1、先交代下问题背景。打包一直是用的armV7架构,前段时间老板提到加上arm64。没想到公司其中一台手机居然崩溃,unity的splash动画都没播,但是也没闪退,就是黑屏。看到一串红色崩溃日志。
2、解决方式。把原来安装的armV7架构包删掉,再装armV7+arm64架构的包就可以了。参考Unity Android build crash when using ARM64 with IL2CPP - Unity Forum,其中有好几种情况,也分别有好几种解决方式,这种方式解决不了,可以看看上边问题的回答。我是参考了里边的“更换签名文件”
3、崩溃日志关键字:signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x71e62d4000
backtrace:
E/CRASH: #00 pc 0000000000a51408 /system/vendor/lib64/libllvm-qgl.so (BuildId: 336a7b0b0c7842afdb30ddb1bb68d490)
#07 pc 00000000000a1570 /system/vendor/lib64/hw/vulkan.sdm660.so (QglPipeline::CreateProgram()+196)、 #06 pc 00000000000a3ff4 /system/vendor/lib64/hw/vulkan.sdm660.so (QglProgram::Create(QglProgramCreateData*)+224)
4、走过的弯路。。。最近断断续续查了两天半
(1)尝试解析崩溃code。参考(20条消息) Unity Native崩溃堆栈解析_Don里个冬的博客-CSDN博客_native unity
(2)升级unity小版本,但是有点问题也没打包出来测试。