Understanding android crash detail

Godot 4.6.1

I’m trying to run my Android game on a very old Nexus 7 with a custom Android 11 ROM.

I know, i’m searching for troubles.

However the app starts until i get to the main game scene where it crashes.

I have the Android crash log but it’s rather difficult for me to understand if it contains useful info to track the crash cause.

Any hint? What can i do to have more info?

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 4878 >>> eu.flatworld.onirica <<<

backtrace:
  #00  pc 0x00000000000b49d0  /vendor/lib/libsc-a3xx.so
  #01  pc 0x00000000000a1ebb  /vendor/lib/libsc-a3xx.so
  #02  pc 0x00000000000b55b9  /vendor/lib/libsc-a3xx.so
  #03  pc 0x00000000000caaf7  /vendor/lib/libsc-a3xx.so
  #04  pc 0x00000000000b731d  /vendor/lib/libsc-a3xx.so
  #05  pc 0x00000000000c6cf7  /vendor/lib/libsc-a3xx.so
  #06  pc 0x00000000003a37c9  /vendor/lib/libsc-a3xx.so
  #07  pc 0x00000000001b2dd3  /vendor/lib/libsc-a3xx.so
  #08  pc 0x00000000001b2e8d  /vendor/lib/libsc-a3xx.so
  #09  pc 0x00000000001b2f37  /vendor/lib/libsc-a3xx.so
  #10  pc 0x0000000000324853  /vendor/lib/libsc-a3xx.so
  #11  pc 0x00000000000c6e9f  /vendor/lib/libsc-a3xx.so
  #12  pc 0x00000000000a9059  /vendor/lib/libsc-a3xx.so
  #13  pc 0x000000000004cb33  /vendor/lib/libsc-a3xx.so
  #14  pc 0x000000000004cd0f  /vendor/lib/libsc-a3xx.so
  #15  pc 0x000000000004cf59  /vendor/lib/libsc-a3xx.so
  #16  pc 0x0000000000109f6f  /vendor/lib/libsc-a3xx.so
  #17  pc 0x000000000010c6d3  /vendor/lib/libsc-a3xx.so
  #18  pc 0x000000000010bd27  /vendor/lib/libsc-a3xx.so
  #19  pc 0x000000000010deb9  /vendor/lib/libsc-a3xx.so (__link_shaders+320)
  #20  pc 0x0000000000069f17  /vendor/lib/egl/libGLESv2_adreno.so (core_glLinkProgram+910)
  #21  pc 0x0000000001ae6ef4  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #22  pc 0x0000000001aeb35c  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #23  pc 0x0000000001a738e8  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #24  pc 0x0000000001a71fbc  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #25  pc 0x0000000003132634  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #26  pc 0x00000000031348c4  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #27  pc 0x00000000031277b0  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #28  pc 0x0000000003128734  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #29  pc 0x0000000003327234  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #30  pc 0x0000000000a2e8a8  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #31  pc 0x00000000009b764c  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (BuildId: fae4f5f7ea0753eb)
  #32  pc 0x00000000009d372c  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/split_config.armeabi_v7a.apk!libgodot_android.so (Java_org_godotengine_godot_GodotLib_step+388) (BuildId: fae4f5f7ea0753eb)
  #33  pc 0x000000000001a8cf  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/oat/arm/base.odex (art_jni_trampoline+94)
  #34  pc 0x000000000200250d  /memfd:jit-cache (org.godotengine.godot.gl.GodotRenderer.onDrawFrame+84)
  #35  pc 0x00000000000d35d5  /apex/com.android.art/lib/libart.so (art_quick_invoke_stub_internal+68)
  #36  pc 0x00000000004e7221  /apex/com.android.art/lib/libart.so (art_quick_invoke_stub+280)
  #37  pc 0x000000000012c6bf  /apex/com.android.art/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+142)
  #38  pc 0x000000000023e013  /apex/com.android.art/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+254)
  #39  pc 0x00000000002364cd  /apex/com.android.art/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+756)
  #40  pc 0x00000000004da015  /apex/com.android.art/lib/libart.so (MterpInvokeInterface+876)
  #41  pc 0x00000000000ce214  /apex/com.android.art/lib/libart.so (mterp_op_invoke_interface+20)
  #42  pc 0x0000000000248294  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/base.apk
  #43  pc 0x00000000004dad71  /apex/com.android.art/lib/libart.so (MterpInvokeDirect+1084)
  #44  pc 0x00000000000ce114  /apex/com.android.art/lib/libart.so (mterp_op_invoke_direct+20)
  #45  pc 0x0000000000248764  /data/app/~~Xia7ibZtfOoPg9G232cI8w==/eu.flatworld.onirica-kbc8x_RSkVJ2PLq2hKLOpQ==/base.apk
  #46  pc 0x000000000022f64d  /apex/com.android.art/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.2422742477805777985)+244)
  #47  pc 0x0000000000235c2f  /apex/com.android.art/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+114)
  #48  pc 0x00000000004ca3b3  /apex/com.android.art/lib/libart.so (artQuickToInterpreterBridge+690)
  #49  pc 0x00000000000d8161  /apex/com.android.art/lib/libart.so (art_quick_to_interpreter_bridge+32)
  #50  pc 0x00000000000d35d5  /apex/com.android.art/lib/libart.so (art_quick_invoke_stub_internal+68)
  #51  pc 0x00000000004e7221  /apex/com.android.art/lib/libart.so (art_quick_invoke_stub+280)
  #52  pc 0x000000000012c6bf  /apex/com.android.art/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+142)
  #53  pc 0x00000000003f424d  /apex/com.android.art/lib/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+372)
  #54  pc 0x00000000003f435b  /apex/com.android.art/lib/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+42)
  #55  pc 0x00000000004361f7  /apex/com.android.art/lib/libart.so (art::Thread::CreateCallback(void*)+1038)
  #56  pc 0x00000000000824ab  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+40)
  #57  pc 0x000000000003a35f  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30)

This hint pointed me to the simple outline shader i have in my game.

Feeding the backtrace to an AI also told me that old Adreno GPU are really buggy and Godot 4, not supporting GLES2, is not helping with that.

Removing the shader indeed removes the crash, so i could discover that also the couple of simple 2D lights i have don’t work.

I could probably workaround everything with sprites…but probably it’s not worth it.

You should export an empty project, then run it on Android and see whether the problem is caused by a specific node or something else.