У меня есть игра Unity для Android, которая аварийно завершает работу на определенном устройстве с собственным сбоем внутри libil2cpp.so. Сбой происходит только на этом устройстве и корректно работает на других устройствах Android.
Я пытаюсь понять основную причину и способы ее устранения или устранения.
Версия Unity:
Unity 6000.0.60f1
Информация об устройстве:
Device: Nokia T20
Android version: 13 (API level 33)
CPU architecture: ARM64
GPU: Mali-G52
RAM: 4 GB
ABI: arm64-v8a
Настройки сборки:
Platform: Android
Scripting Backend: IL2CPP
Target Architectures: ARM64 only
Managed Stripping Level: Medium
IL2CPP Code Generation: Optimize for runtime speed
C++ Compiler Configuration: Release
Development Build: Disabled
Script Debugging: Disabled
Настройки графики
Auto Graphics API: Disabled
Graphics API: OpenGLES3 only
Graphics Jobs: Disabled
Интегрированные SDK
Google Admob Unity plugin
ironSource Unity plugin
Native Share plugin
Поведение при сбое:
- Приложение запускается нормально.
- Unity инициализируется успешно.
- Загружается первая сцена
- Сбой происходит вскоре после запуска во время выполнения
- Управляемых исключений не возникает
- Ошибки C# не регистрируются
- Предупреждения не появляются перед сбоем
основном потоке Unity
Crash log (logcat)
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x128f9000020
in tid UnityMain
backtrace:
#00 pc 0000000000000000 libil2cpp.so
#01 pc 0000000000000000 libil2cpp.so
#02 pc 0000000000000000 libil2cpp.so
#03 pc 0000000000000000 libunity.so
#04 pc 0000000000000000 libunity.so
#05 pc 0000000000000000 libunity.so
Дополнительные системные журналы
DeadSystemException: The system died; earlier logs will point to the root cause
*** FATAL EXCEPTION IN SYSTEM PROCESS
Подробнее здесь: https://stackoverflow.com/questions/798 ... 52-unity-6
Мобильная версия