Environment
- SDK:
com.google.android.gms:play-services-maps3d:0.2.0
- Dynamite module on device:
dl-Maps3DDynamite.integ_262080800100400.apk (com.google.android.gms.policy_maps3d_dynamite@262080801)
- Device: Samsung Galaxy A54 (SM-A546B), Android 16 (build
BP4A.251205.006, fingerprint samsung/a54xnaeea/a54x:16), arm64
- Maps 3D SDK for Android API enabled on the key; billing active
Summary
The app process aborts with a native SIGABRT raised by ART's JNI checker a few seconds (~5-10s) after a Map3DView is created and the renderer starts. The abort happens on a thread created by the Maps3D Dynamite module (Thread-10/Thread-12, plain pthread), with no managed frames:
JNI DETECTED ERROR IN APPLICATION: java_object == null
in call to GetObjectClass
Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 19823 (Thread-10), pid 18822 (…dronescout)
backtrace (all app frames inside the Dynamite module):
#05 art::JNI<false>::GetObjectClass(_JNIEnv*, _jobject*)+700 (libart.so)
#06 pc 003312c4 dl-Maps3DDynamite.integ_262080800100400.apk (offset 0x210000)
#07 pc 003339d8 dl-Maps3DDynamite.integ_262080800100400.apk
#08 pc 007629fc dl-Maps3DDynamite.integ_262080800100400.apk
...
#21 __pthread_start (libc.so)
At abort time the main thread is executing Dynamite code scheduled via Handler (obfuscated frames m138.cyq.run → m138.ctu.e → m138.acg.b → m138.csg.b from com.google.android.gms.policy_maps3d_dynamite@262080801@262080800025).
Reproduction
Map3DView created programmatically with Map3DView(context, Map3DOptions(...)) (valid camera: lat 45.86, lng 8.94, alt 0, heading 0, tilt 65, range 1800, default constraints, HYBRID), onCreate(null) called, lifecycle forwarded from the Activity (onStart/onResume/…), getMap3DViewAsync() invoked. The view renders briefly, then the process dies.
Ruled out on our side (crash is identical in every combination):
- debug build vs release build (i.e. with and without R8; also tested with
-keep class com.google.android.gms.maps3d.** { *; })
Map3DMode.HYBRID vs Map3DMode.SATELLITE
- plain
Map3DView(context) vs Map3DView(context, Map3DOptions) with fully-populated options
The view is hosted inside a Flutter PlatformView (hybrid composition, real Activity context, lifecycle forwarded from the Activity's Lifecycle), but given the abort originates entirely inside the Dynamite module on its own render thread, the host UI toolkit does not appear relevant.
Possibly related: #14 (native runtime abort) and #18 (samples not working on Android 16 — same OS version as here, different failure signature).
Happy to provide the full logcat dump or run instrumented builds if that helps.
Environment
com.google.android.gms:play-services-maps3d:0.2.0dl-Maps3DDynamite.integ_262080800100400.apk(com.google.android.gms.policy_maps3d_dynamite@262080801)BP4A.251205.006, fingerprintsamsung/a54xnaeea/a54x:16), arm64Summary
The app process aborts with a native SIGABRT raised by ART's JNI checker a few seconds (~5-10s) after a
Map3DViewis created and the renderer starts. The abort happens on a thread created by the Maps3D Dynamite module (Thread-10/Thread-12, plainpthread), with no managed frames:At abort time the main thread is executing Dynamite code scheduled via
Handler(obfuscated framesm138.cyq.run→m138.ctu.e→m138.acg.b→m138.csg.bfromcom.google.android.gms.policy_maps3d_dynamite@262080801@262080800025).Reproduction
Map3DViewcreated programmatically withMap3DView(context, Map3DOptions(...))(valid camera: lat 45.86, lng 8.94, alt 0, heading 0, tilt 65, range 1800, default constraints, HYBRID),onCreate(null)called, lifecycle forwarded from the Activity (onStart/onResume/…),getMap3DViewAsync()invoked. The view renders briefly, then the process dies.Ruled out on our side (crash is identical in every combination):
-keep class com.google.android.gms.maps3d.** { *; })Map3DMode.HYBRIDvsMap3DMode.SATELLITEMap3DView(context)vsMap3DView(context, Map3DOptions)with fully-populated optionsThe view is hosted inside a Flutter PlatformView (hybrid composition, real Activity context, lifecycle forwarded from the Activity's
Lifecycle), but given the abort originates entirely inside the Dynamite module on its own render thread, the host UI toolkit does not appear relevant.Possibly related: #14 (native runtime abort) and #18 (samples not working on Android 16 — same OS version as here, different failure signature).
Happy to provide the full
logcatdump or run instrumented builds if that helps.