Open davonprewitt opened 2 years ago
Interesting find. I have ATAK v4.5.1.2 (f73e8194) manually install on a Samsung S21+ with the following software load:
One UI: 4.1
Android: 12
Kernel: 5.4.147-qgki-24900553-abG996U1UES5CVI8
Build Number: SP1A.210812.016.G996U1UES5CVI8
I am getting a massive stack trace once the main map loads on ATAK - the same error as here. I had some private plugins install and thought initially they were to blame:
2022-10-25 13:17:37.753 18910-19014/com.atakmap.app.civ A/atakmap.app.ci: java_vm_ext.cc:594] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xad
java_vm_ext.cc:594] string: ' �R�t'
java_vm_ext.cc:594] input: '0x20 <0xad> 0x52 0xc5 0x74'
java_vm_ext.cc:594] in call to NewStringUTF
java_vm_ext.cc:594] from void com.atakmap.map.opengl.GLLabelManager.setTextFormat(long, int, java.lang.String, float, boolean, boolean, boolean, boolean)
2022-10-25 13:17:37.825 18910-19014/com.atakmap.app.civ A/atakmap.app.ci: runtime.cc:675] Runtime aborting...
[... rest removed for brevity, lots of threads dying ...]
but a clean install produces the same issue (stack trace in opposite order; threads dying first then error that started it all):
[... rest removed for brevity, lots of threads dying ...]
2022-10-25 14:35:29.067 23270-23374/com.atakmap.app.civ A/atakmap.app.ci: runtime.cc:675] at com.atakmap.android.maps.graphics.GLMarker2.draw(SourceFile:742)
runtime.cc:675] at com.atakmap.android.maps.graphics.GLQuadtreeNode2$Renderable.draw(SourceFile:1057)
runtime.cc:675] at com.atakmap.map.opengl.GLAsynchronousMapRenderable2.draw(SourceFile:310)
runtime.cc:675] - locked <0x01e2e843> (a com.atakmap.android.maps.graphics.GLQuadtreeNode2)
runtime.cc:675] at com.atakmap.android.maps.graphics.GLRootMapGroupLayer.draw(SourceFile:66)
runtime.cc:675] at com.atakmap.map.layer.opengl.GLMultiLayer.drawImpl(SourceFile:91)
runtime.cc:675] at com.atakmap.map.layer.opengl.GLAbstractLayer2.draw(SourceFile:56)
runtime.cc:675] at com.atakmap.map.layer.opengl.GLProxyLayer.drawImpl(SourceFile:128)
runtime.cc:675] at com.atakmap.map.layer.opengl.GLAbstractLayer2.draw(SourceFile:56)
runtime.cc:675] at com.atakmap.map.layer.opengl.GLMultiLayer.drawImpl(SourceFile:91)
runtime.cc:675] at com.atakmap.map.layer.opengl.GLAbstractLayer2.draw(SourceFile:56)
runtime.cc:675] at com.atakmap.map.opengl.GLMapView.render(Native method)
runtime.cc:675] at com.atakmap.map.opengl.GLMapView.render(SourceFile:1479)
runtime.cc:675] at com.atakmap.map.opengl.GLMapRenderer.onDrawFrame(SourceFile:96)
runtime.cc:675] at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1593)
runtime.cc:675] at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1287)
runtime.cc:675]
2022-10-25 14:35:29.067 23270-23374/com.atakmap.app.civ A/atakmap.app.ci: runtime.cc:683] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xad
runtime.cc:683] string: ' ��Yw'
runtime.cc:683] input: '0x20 <0xad> 0xb2 0x59 0x77'
runtime.cc:683] in call to NewStringUTF
runtime.cc:683] from void com.atakmap.map.opengl.GLLabelManager.setTextFormat(long, int, java.lang.String, float, boolean, boolean, boolean, boolean)
I have a few phones locked from updates from Samsung that work just fine with same version installed.
I reproduced the same error again on 4.4.0.13 - this time having an initial map location in the US on open. It seems to crash with the exact same error when the map is in view of (0, 0) as a coordinate.
I have wiped my old ATAK (4.5.1.2) and installed cleanly the latest from here (4.5.1.13). My problem on Samsung S21+ still exists.
However I noticed it does not matter where the map loads. Every time the app first loads the GPS location is not set and when it seems to get a GPS position and put the marker on the map the app crashes. I have another S21+ with the same software load running completely fine - so I am a bit lost on why they are acting so different.
If I am quick enough and enter the main settings menu the app never crashes until I return to the map screen.
2022-11-02 14:06:31.203 29494-29494/com.atakmap.app.civ D/LocationMapComponent: GPS available, sending a system broadcast for now until CotService is augmented
2022-11-02 14:06:31.203 29494-29494/com.atakmap.app.civ D/BreadcrumbReceiver: START LOGGING self
2022-11-02 14:06:31.203 29494-29494/com.atakmap.app.civ D/BreadcrumbReceiver: START LOGGING NEW CRUMB TRAIL for self UID: ANDROID-13fcf334fb3ca9fc
2022-11-02 14:06:31.205 29494-29494/com.atakmap.app.civ D/ReportingRate: Report ASAP, reason=GPS now available
2022-11-02 14:06:31.220 29494-29628/com.atakmap.app.civ A/atakmap.app.ci: java_vm_ext.cc:594] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xad
java_vm_ext.cc:594] string: ' �2v'
java_vm_ext.cc:594] input: '0x20 <0xad> 0x32 0x01 0x76'
java_vm_ext.cc:594] in call to NewStringUTF
java_vm_ext.cc:594] from void com.atakmap.map.opengl.GLLabelManager.setTextFormat(long, int, java.lang.String, float, boolean, boolean, boolean, boolean)
@davonprewitt I feel like we are both experiencing the same underlying issue; something to do with placing markers onto the map - do you agree?
Edit: I think I can confirm that it has to do with the placing of markers. Just re-ran the app again and watched closely. The box for the users location right before the crash disappears as if its being refreshed to load in the new information.
I agree @kc2rxo. This is definitely a map-related issue. This seems to be specific to how Samsung libraries interact with the ATAK mapping library as this issue does not exist for Android devices from other manufacturers.
Out of curiosity what Android device are you using? I have a range of Samsung devices and Pixels.
Samsung S20 and Pixel 3 + 4.
So I just did a pass on all my devices (Samsung S21+ [4x], Samsung S10 [1x], Pixel 6 Pro [1x] and Samsung Tab S5e [1x]).
Half my S21's do not work with ATAK as described above. My Pixel 6 Pro also crashes (more like locks up and stops responding before Android kills it). All other devices seem to be fine back to ATAK v4.5.1.2 (the primary version I am running due some development restrictions at this moment). I tested one S21+ with ATAK v4.5.1.13 with no change to the behavior (still crashing).
I can confirm that turning off Location on the device (and ignoring ATAKs warning about missing GPS) allows the application to not crash. That is until I manually attempt to place the user marker on the map - then the error manifests.
Using the application AIDA64 the only noticeable difference I see among the devices are Android version, API level and Android Security Patch Level and Google Play Services versions.
Device | Android Version | API Level | Android Security Patch Level | Google Play Service Version | ATAK Working |
---|---|---|---|---|---|
S21+ 01 | 12 | 31 | 2022-10-01 | 22.41.13 (190400-480714934) | No |
S21+ 02 | 12 | 31 | 2022-05-01 | 22.15.14 (190400-441847897) | Yes |
S21+ 03 | 12 | 31 | 2022-10-01 | 22.42.12 (190400-481949630) | Yes |
S21+ 04 | 12 | 31 | 2022-10-01 | 22.36.16 (190400-476895098) | No |
Pixel 6 Pro | 13 | 33 | 2022-10-05 | 22.42.12 (190400-481949630) | No |
Tab S5e | 11 | 30 | 2022-09-01 | 22.41.13 (150400-480714934) | Yes |
S10 | 12 | 31 | 2022-07-01 | 22.36.16 (190400-476895098) | Yes |
What a strange collection of working and non-working devices.
Edit: missed S10
These issues have been resolved in newer versions of ATAK 4.6, 4.7 and 4.8.
Works on:
On 4.4.0 CIV dev, ATAK crashes on start when Android restarts.
We install our plugin - works fine after installing.
After restarting Android, ATAK crashes. ATAK also did not attempt to auto unload the plugin after the crash. We manually uninstall the plugin, attempt to reopen ATAK and it STILL crashes.
The error message is not clear on the issue. Please help.