I am seeing an increase in crashes with this stack trace (from Google crash details).
This is running runtime version 100.15.1. According to Google it happens on Android 11-14.
backtrace:
#00 pc 0x00000000036c8ef4 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#01 pc 0x00000000036c90d4 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#02 pc 0x000000000366aed4 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#03 pc 0x000000000366eab0 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#04 pc 0x0000000003670d08 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#05 pc 0x00000000036702d0 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#06 pc 0x0000000003681220 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#07 pc 0x000000000367c4f0 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#08 pc 0x0000000003677bd8 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#09 pc 0x0000000003657620 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#10 pc 0x0000000002ba1ff8 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#11 pc 0x0000000002b8ee00 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#12 pc 0x0000000002b8fc78 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#13 pc 0x0000000002bad8f4 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#14 pc 0x000000000221c4fc /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#15 pc 0x000000000224f79c /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#16 pc 0x000000000225b430 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#17 pc 0x000000000225bae4 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#18 pc 0x0000000002f54c98 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#19 pc 0x0000000002f54bf4 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#20 pc 0x0000000002f54b54 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#21 pc 0x0000000001f012c4 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Request_handleResponseWithHTTPStatusCode+124) (BuildId: e72d6cff612404e88c5c97eb8cb164dd79475694)
#22 pc 0x0000000000218ac8 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/split_config.arm64_v8a.apk!libruntimecore_java.so (Java_com_esri_arcgisruntime_internal_jni_CoreRequest_nativeHandleResponseWithHTTPStatusCode+148) (BuildId: fca1a20778839a2d8d084173a5d0466db9a4a1de)
#23 pc 0x00000000001dae14 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/oat/arm64/base.odex (art_jni_trampoline+164)
#24 pc 0x000000000031c088 /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/oat/arm64/base.odex (com.esri.arcgisruntime.internal.jni.CoreRequest.a+104)
#25 pc 0x0000000000273d7c /data/app/~~3bzna1SGdHMbAdz-H0LcwQ==/com.my.app-O3wq21-_L2A-ITp1RXsW1w==/oat/arm64/base.odex (com.esri.arcgisruntime.internal.io.handler.request.e$a.run+492)
#26 pc 0x00000000005b0744 /system/framework/arm64/boot-framework.oat (android.os.Handler.dispatchMessage+84)
#27 pc 0x00000000005b3ca4 /system/framework/arm64/boot-framework.oat (android.os.Looper.loopOnce+1044)
#28 pc 0x00000000005b37f0 /system/framework/arm64/boot-framework.oat (android.os.Looper.loop+560)
#29 pc 0x0000000000338448 /system/framework/arm64/boot-framework.oat (android.app.ActivityThread.main+1768)
#30 pc 0x0000000000360a80 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
#31 pc 0x000000000026a8a0 /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+780)
#32 pc 0x000000000026a584 /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32)
#33 pc 0x00000000000a2578 /system/framework/arm64/boot.oat (art_jni_trampoline+120)
#34 pc 0x000000000090ebfc /system/framework/arm64/boot-framework.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+140)
#35 pc 0x0000000000918b2c /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+3420)
#36 pc 0x0000000000360a80 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
#37 pc 0x00000000004946cc /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+516)
#38 pc 0x000000000055369c /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+112)
#39 pc 0x00000000000deab4 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+104)
#40 pc 0x00000000000eaf58 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+852)
#41 pc 0x0000000000002550 /system/bin/app_process64 (main+1276)
#42 pc 0x00000000000526d8 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+104)
I haven't been able to reproduce it myself, and I'm a bit empty on ideas. Does anyone here perhaps recognise what this could be related to, or maybe it's something you have seen before? From the stack trace I can't find which part of my code that triggers this either.
Do you have any removing Graphic or GraphicOverlay operations in your code? It seems a removing operation is triggered repeatedly. We need more details to narrow down the crash.
Good tip, I can debug in that direction, then. I'm drawing some graphics on the map with a few graphic overlays, I'll try to see if I can trigger something in the app that could make it perform many removes at the same time.
Edit: Upon closer inspection the only time we remove graphics is through this. I need to investigate if we could end up in a situation where we call it too often.
void clearGraphics(Boolean includeFunctional, Promise result) {
if (mapView != null) {
this.clearAllSelectionGraphics();
if (includeFunctional) {
this.clearAllFunctionalGraphics();
}
}
result.resolve(true);
}
private void clearAllFunctionalGraphics() {
if (this.graphicsOverlayFunctional != null) {
this.graphicsOverlayFunctional.getGraphics().clear();
}
}
private void clearAllSelectionGraphics() {
if (this.graphicsOverlaySelection != null) {
this.graphicsOverlaySelection.getGraphics().clear();
}
}
@ChanganShi1 Just to confirm, you are quite certain that the crash details above points to something with graphics/graphicsoverlay and not e.g. vector basemaps? Just noticed "RT_Vector_" and came to think if it could be something with that instead.
@EirikH It is just a guess, RT_Vector is a Vector data structure holding a list of elements. setElementRemovedCallback indicates that an element being hooked with a removedCallback is being held or invalid access. What else was on the map view when the crash happened, e.g. a Popup?
We are not using anything else than a vector basemap, some layers from a dynamic mapservice, and some grahics (icons) that we draw.
Edit: I'll try to try/catch the grapics clear call, and do some logging to see if it happens related to that.
Thanks, let us know if you could provide more details to help us debug.
Not sure it helps, but we have gotten a few more variants of this. New with this one as far as I can see is the "__shared_weak_count" lines
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 21481 >>> com.our.app <<<
backtrace:
#00 pc 0x0000000001e1b428 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (std::__ndk1::__shared_weak_count::__add_weak()+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#01 pc 0x00000000023b3470 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#02 pc 0x0000000001f8508c /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#03 pc 0x0000000001f84ff8 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#04 pc 0x00000000023b40b4 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#05 pc 0x0000000002395dbc /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#06 pc 0x0000000001e1b458 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (std::__ndk1::__shared_weak_count::__add_weak()+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#07 pc 0x0000000002204d04 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#08 pc 0x0000000002477adc /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#09 pc 0x0000000001e1b458 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (std::__ndk1::__shared_weak_count::__add_weak()+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#10 pc 0x0000000002009360 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#11 pc 0x0000000001e95590 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_SelectionProperties_destroy+40) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#12 pc 0x00000000001eb79c /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/split_config.arm64_v8a.apk!libruntimecore_java.so (Java_com_esri_arcgisruntime_internal_jni_CoreFeatureTable_nativeDestroy+20) (BuildId: fca1a20778839a2d8d084173a5d0466db9a4a1de)
#13 pc 0x00000000001b6190 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/oat/arm64/base.odex (art_jni_trampoline+112)
#14 pc 0x00000000005baf1c /apex/com.android.art/lib64/libart.so (nterp_helper+1948)
#15 pc 0x00000000003c360a /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/base.apk (com.esri.arcgisruntime.internal.jni.CoreFeatureTable.i+54)
#16 pc 0x00000000005bb6d4 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
#17 pc 0x00000000003c3500 /data/app/~~H37otgv3NBMApEflcwEBSg==/com.our.app--Y8VLwqPQZ5tTuCCyyD2SA==/base.apk (com.esri.arcgisruntime.internal.jni.CoreFeatureTable.finalize+4)
#18 pc 0x00000000005ea3bc /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.lang.Daemons$FinalizerDaemon.doFinalize+252)
#19 pc 0x00000000005bb730 /apex/com.android.art/lib64/libart.so (nterp_helper+4016)
#20 pc 0x000000000002b0c6 /apex/com.android.art/javalib/core-libart.jar (java.lang.Daemons$FinalizerDaemon.processReference+26)
#21 pc 0x00000000005ea588 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.lang.Daemons$FinalizerDaemon.runInternal+296)
#22 pc 0x00000000005c09ac /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.lang.Daemons$Daemon.run+156)
#23 pc 0x000000000041cfd0 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.lang.Thread.run+64)
#24 pc 0x000000000033eba4 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612)
#25 pc 0x000000000023a9ac /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+144)
#26 pc 0x000000000053b96c /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1600)
#27 pc 0x000000000053b31c /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallbackWithUffdGc(void*)+8)
#28 pc 0x00000000000be8c8 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208)
#29 pc 0x000000000005b3b0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
And this one
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 16193 >>> com.our.app <<<
backtrace:
#00 pc 0x00000000036d4794 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#01 pc 0x00000000036d418c /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#02 pc 0x00000000036711b8 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#03 pc 0x000000000365e94c /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#04 pc 0x0000000003677e30 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#05 pc 0x00000000036808d4 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#06 pc 0x000000000365cd14 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#07 pc 0x0000000003662e40 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (__gttf2+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#08 pc 0x0000000002ba9b88 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#09 pc 0x0000000002bac38c /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#10 pc 0x00000000022522b0 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#11 pc 0x000000000225de30 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#12 pc 0x000000000225e4e8 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#13 pc 0x0000000002f5a2b0 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#14 pc 0x0000000002f5a20c /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#15 pc 0x0000000002f5a16c /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Vector_setElementRemovedCallback+16027648) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#16 pc 0x0000000001f02a78 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore.so (RT_Request_handleResponseWithHTTPStatusCode+124) (BuildId: 9fe16338efe06b90fcf7dc21ab722d5d48dd6b72)
#17 pc 0x0000000000218ac8 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/split_config.arm64_v8a.apk!libruntimecore_java.so (Java_com_esri_arcgisruntime_internal_jni_CoreRequest_nativeHandleResponseWithHTTPStatusCode+148) (BuildId: fca1a20778839a2d8d084173a5d0466db9a4a1de)
#18 pc 0x00000000001cbe14 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/oat/arm64/base.odex (art_jni_trampoline+164)
#19 pc 0x00000000002fa500 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/oat/arm64/base.odex (com.esri.arcgisruntime.internal.jni.CoreRequest.a+96)
#20 pc 0x000000000025af64 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/oat/arm64/base.odex (com.esri.arcgisruntime.internal.io.handler.request.e$a.run+484)
#21 pc 0x00000000002f556c /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/oat/arm64/base.odex (com.esri.arcgisruntime.internal.concurrent.g.b+316)
#22 pc 0x000000000024d5c8 /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/oat/arm64/base.odex (com.esri.arcgisruntime.internal.concurrent.e.a+376)
#23 pc 0x00000000002f52ec /data/app/~~a43jXEw0D39bDFw6Bimuxw==/com.our.app-rAWtFoNOH6aUtEPmAiKPtA==/oat/arm64/base.odex (com.esri.arcgisruntime.internal.concurrent.c.done+60)
#24 pc 0x000000000051f334 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.FutureTask.finishCompletion+260)
#25 pc 0x000000000051ffdc /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.FutureTask.set+140)
#26 pc 0x000000000051fc10 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.FutureTask.run+272)
#27 pc 0x000000000057ee8c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+796)
#28 pc 0x000000000057bfb0 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+64)
#29 pc 0x000000000042a608 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.lang.Thread.run+72)
#30 pc 0x0000000000333fa4 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612)
#31 pc 0x000000000023e4d4 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+144)
#32 pc 0x0000000000539a3c /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1600)
#33 pc 0x00000000000be8c8 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208)
#34 pc 0x000000000005b3b0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
These are our top crashes so quite annoying.
Thanks for your report. I see the crash related to a Feature Table. Do you have an operation in your App to remove a feature layer while the feature layer may have some features being selected?
We are not selecting features in a feature table (just querying them and using the geometry), but that is a good tip, will look into that part of the code more.
Typical use:
SimpleLineSymbol symbol = new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, MapViewTouchListener.highlightSecondaryColor, 7.0f);
QueryParameters segmentQuery = new QueryParameters();
segmentQuery.setWhereClause(segmentWhereClause.toString());
Log.d(TAG, "Fetching from " + serviceFeatureTable.getTableName() + " where " + segmentQuery.getWhereClause());
try {
FeatureQueryResult segmentResults = serviceFeatureTable.queryFeaturesAsync(segmentQuery, ServiceFeatureTable.QueryFeatureFields.LOAD_ALL).get();
for (Feature segmentFeature : segmentResults) {
Log.d(TAG, "Add graphics for feature " + segmentFeature.getAttributes().get("OBJECTID"));
Graphic graphic = new Graphic(segmentFeature.getGeometry(), segmentFeature.getAttributes(), symbol);
Log.d(TAG, "Adding " + layerConfig.relationship.fieldName + " = " + routeID + " to graphic attributes");
graphic.getAttributes().put(layerConfig.relationship.fieldName, routeID);
graphic.setVisible(true);
this.graphicsOverlaySelection.getGraphics().add(graphic);
}
return graphicsOverlaySelection.getExtent();
} catch (ExecutionException | InterruptedException e) {
e.printStackTrace();
return null;
}
Is it possible for the serviceFeaureTable to be garbage collected (GC) due to being out of scope in your application?