-
-
Notifications
You must be signed in to change notification settings - Fork 142
Description
I am working on the Mapbox plugin.
After upgrading to NS 6+, I am experiencing random crashes in android.graphics.drawable.ColorDrawable$ColorState.newDrawable always after ngOnInit on the target route after navigating away using the RadSideDrawer from a page hosting a Mapbox map and removing the map.
After a few days of crawling through code I am beginning to suspect that maybe this is not my bug.
Environment
✔ Component nativescript has 6.1.1 version and is up to date.
✔ Component tns-core-modules has 6.1.1 version and is up to date.
✔ Component tns-android has 6.1.1 version and is up to date.
relevant package.json:
"dependencies": {
"@angular/animations": "~8.2.0",
"@angular/common": "~8.2.0",
"@angular/compiler": "~8.2.0",
"@angular/core": "~8.2.0",
"@angular/forms": "~8.2.0",
"@angular/platform-browser": "~8.2.0",
"@angular/platform-browser-dynamic": "~8.2.0",
"@angular/router": "~8.2.0",
"nativescript-advanced-permissions": "^1.2.0",
"nativescript-mapbox": "file:../publish/dist/package",
"nativescript-angular": "~8.2.0",
"nativescript-theme-core": "~1.0.6",
"nativescript-ui-sidedrawer": "~7.0.0",
"reflect-metadata": "~0.1.12",
"rxjs": "^6.4.0",
"rxjs-compat": "^6.5.3",
"tns-core-modules": "~6.1.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular/compiler-cli": "~8.2.0",
"@ngtools/webpack": "~8.2.0",
"@types/chai": "~4.1.7",
"@types/mocha": "~5.2.5",
"@types/node": "~10.12.18",
"chai": "~4.1.2",
"codelyzer": "~4.5.0",
"mocha": "~5.2.0",
"mocha-junit-reporter": "~1.18.0",
"mocha-multi": "~1.0.1",
"mochawesome": "~3.1.2",
"nativescript-dev-appium": "^6.0.0",
"nativescript-dev-webpack": "~1.2.0",
"node-sass": "^4.7.1",
"tslint": "~5.19.0",
"typescript": "~3.5.3"
},
Using Android Emulator with an API 28 image under Ubuntu 18.04 LTS with Android Studio:
Android Studio 3.5
Build #AI-191.8026.42.35.5791312, built on August 8, 2019
JRE: 1.8.0_202-release-1483-b49-5587405 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.15.0-38-generic
it also occurs in other API levels.
Describe the bug
I am working on the NativeScript Mapbox plugin. My fork is here: https://github.com/Yermo/nativescript-mapbox
The crash can be replicated using the included demo-angular app.
Since upgrading Nativescript to NS 6+, I am experiencing a random crash when navigating away from a page containing a map and removing the map container when running with "markingMode":"none".
The map object is quite large so when doing lateral navigation ideally I want to destroy the mapbox view. I do this by wrapping the Mapbox tag in container with an *ngIf. Before navigating away the *ngIf condition is set to false and I wait for the mapbox onDestroy to return before proceeding with the navigation (thinking maybe there's a race condition somewhere.)
The crash always happens after ngOnInit() on the target page on the same line after anywhere from 3 to 100 page navigations to and from the map page.
This did not occur before the upgrade to NS 6. It also does not occur when "markingMode":"none" is disabled but the app is then unusable because it is too slow.
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: can't call android.graphics.drawable.Drawable android.graphics.drawable.ColorDrawable$ColorState.newDrawable(android.content.res.Resources) on null object
I believe I have implemented the recommended reference fix to avoid an un-synchronized garbage collection issue between JS and Java and I am not seeing the
Error: com.tns.NativeScriptException: Attempt to use cleared object reference id=<some-object-id-number>
The JavaScript instance no longer has available Java/Kotlin instance counterpart
errors I would expect to see if I was having a garbage collection issue.
Logcat output:
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: can't call android.graphics.drawable.Drawable android.graphics.drawable.ColorDrawable$ColorState.newDrawable(android.content.res.Resources) on null object
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] in call to CallObjectMethodA
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] from java.lang.Object com.tns.Runtime.callJSMethodNative(int, int, java.lang.String, int, boolean, java.lang.Object[])
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] "main" prio=5 tid=1 Runnable
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] | group="main" sCount=0 dsCount=0 flags=0 obj=0x7418eee0 self=0xe3874000
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] | sysTid=19726 nice=-10 cgrp=default sched=0/0 handle=0xe8544494
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] | state=R schedstat=( 14189378754 1021081431 12913 ) utm=1277 stm=141 core=2 HZ=100
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] | stack=0xff3d2000-0xff3d4000 stackSize=8MB
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] | held mutexes= "mutator lock"(shared held)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #00 pc 004152f6 /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+198)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #01 pc 0051048e /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+382)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #02 pc 0050b743 /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+83)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #03 pc 0031a8b0 /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1088)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #04 pc 0031ad21 /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, char*)+113)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #05 pc 000d60f7 /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+71)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #06 pc 000d9f8b /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckMethodAndSig(art::ScopedObjectAccess&, _jobject*, _jclass*, _jmethodID*, art::Primitive::Type, art::InvokeType)+1563)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #07 pc 000da58b /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodA(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, jvalue*, art::Primitive::Type, art::InvokeType)+1019)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #08 pc 000c40a9 /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallObjectMethodA(_JNIEnv*, _jobject*, _jmethodID*, jvalue*)+73)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #09 pc 0045ead8 /data/app/com.flyingbricksoftware.MapboxAngularDemo-2_e_8wgxJaPPCmn6d62szw==/lib/x86/libNativeScript.so (_JNIEnv::CallObjectMethodA(_jobject*, _jmethodID*, jvalue const*)+120)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #10 pc 004592b3 /data/app/com.flyingbricksoftware.MapboxAngularDemo-2_e_8wgxJaPPCmn6d62szw==/lib/x86/libNativeScript.so (tns::JEnv::CallObjectMethodA(_jobject*, _jmethodID*, jvalue*)+131)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #11 pc 004377c9 /data/app/com.flyingbricksoftware.MapboxAngularDemo-2_e_8wgxJaPPCmn6d62szw==/lib/x86/libNativeScript.so (tns::CallbackHandlers::CallJavaMethod(v8::Local<v8::Object> const&, std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> const&, std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char>> const&, tns::MetadataEntry*, bool, bool, bool, v8::FunctionCallbackInfo<v8::Value> const&)+14153)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #12 pc 00483e59 /data/app/com.flyingbricksoftware.MapboxAngularDemo-2_e_8wgxJaPPCmn6d62szw==/lib/x86/libNativeScript.so (tns::MetadataNode::MethodCallback(v8::FunctionCallbackInfo<v8::Value> const&)+3065)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] native: #13 pc 00fa8b83 /data/app/com.flyingbricksoftware.MapboxAngularDemo-2_e_8wgxJaPPCmn6d62szw==/lib/x86/libNativeScript.so (???)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.tns.Runtime.callJSMethodNative(Native method)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1209)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.tns.Runtime.callJSMethodImpl(Runtime.java:1096)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.tns.Runtime.callJSMethod(Runtime.java:1083)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.tns.Runtime.callJSMethod(Runtime.java:1063)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.tns.Runtime.callJSMethod(Runtime.java:1055)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.tns.gen.java.lang.Object_vendor_117051_32_TouchListenerImpl.onTouch(Object_vendor_117051_32_TouchListenerImpl.java:19)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.View.dispatchTouchEvent(View.java:12509)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3024)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2705)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
2019-09-18 17:09:46.255 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3030)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:440)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1830)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.app.Activity.dispatchTouchEvent(Activity.java:3400)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:398)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.View.dispatchPointerEvent(View.java:12752)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5106)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4909)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4585)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4642)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4479)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4445)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4453)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4426)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7092)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7061)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7022)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7195)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.os.MessageQueue.nativePollOnce(Native method)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.os.MessageQueue.next(MessageQueue.java:326)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.os.Looper.loop(Looper.java:160)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at android.app.ActivityThread.main(ActivityThread.java:6669)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at java.lang.reflect.Method.invoke(Native method)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
2019-09-18 17:09:46.256 19726-19726/com.flyingbricksoftware.MapboxAngularDemo A/pboxAngularDem: java_vm_ext.cc:542] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Stack trace from the Android Studio debugger:
__kernel_vsyscall 0x00000000e83fab39
syscall 0x00000000e6f1fdf9
abort 0x00000000e6f22ed4
art::Runtime::Abort(char const*) 0x00000000e356a8a7
std::__1::__function::__func<void (*)(char const*), std::__1::allocator<void (*)(char const*)>, void (char const*)>::operator()(char const*&&) 0x00000000e365b834
android::base::LogMessage::~LogMessage() 0x00000000e5a72ccd
art::JavaVMExt::JniAbort(char const*, char const*) 0x00000000e33a8b60
art::JavaVMExt::JniAbortV(char const*, char const*, char*) 0x00000000e33a8d22
art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...) 0x00000000e31640f8
art::(anonymous namespace)::ScopedCheck::CheckMethodAndSig(art::ScopedObjectAccess&, _jobject*, _jclass*, _jmethodID*, art::Primitive::Type, art::InvokeType) 0x00000000e3167f8c
art::(anonymous namespace)::CheckJNI::CallMethodA(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, jvalue*, art::Primitive::Type, art::InvokeType) 0x00000000e316858c
art::(anonymous namespace)::CheckJNI::CallObjectMethodA(_JNIEnv*, _jobject*, _jmethodID*, jvalue*) 0x00000000e31520aa
_JNIEnv::CallObjectMethodA(_jobject*, _jmethodID*, jvalue const*) jni.h:618
tns::JEnv::CallObjectMethodA(_jobject*, _jmethodID*, jvalue*) JEnv.cpp:246
tns::CallbackHandlers::CallJavaMethod(v8::Local<v8::Object> const&, std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > const&, std::__Cr::basic_string<char, std::__Cr::char_traits<char>, std::__Cr::allocator<char> > const&, tns::MetadataEntry*, bool, bool, bool, v8::FunctionCallbackInfo<v8::Value> const&) CallbackHandlers.cpp:499
tns::MetadataNode::MethodCallback(v8::FunctionCallbackInfo<v8::Value> const&) MetadataNode.cpp:1143
v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) 0x00000000c736fb84
To Reproduce
Clone https://github.com/Yermo/nativescript-mapbox
cd src
npm run build.dist
cd ../demo-angular
tns run android
The sample app is based on the sidedrawer sample. To cause the crash, simply navigate between the home map page and the test-crash page repeatedly. The crash occurs whether or not a mapbox activation key (in order to display a map and not just a empty black screen) is included. PM me and I can give you access to a tile server so that the maps display.
The crash occurs randomly between 3 and 100 transitions. I would include an e2e test but I have not been able to get a test working that selects the rad side drawer.
Expected behavior
It should not crash or if it's a garbage collection issue it should provide the garbage collection error message per the documentation.
Sample project
Clone https://github.com/Yermo/nativescript-mapbox
Additional context
It is entirely possible that I am missing something obvious. The thing that confuses me, if this is a bug of mine in the plugin or a Mapbox SDK bug, is why no Mapbox methods are listed in the stack trace? That makes me suspect the issue may lie elsewhere which lead me to filing this ticket.
I have followed the instructions here https://docs.nativescript.org/core-concepts/android-runtime/debug/debug-native to get these traces.
Is there a way to get the javascript stack trace that lead to the crash? I'd love to know what it's trying to draw when it crashes.
Are there any other guides out there for how to more effectively track down the sources of crashes like this?
Any pointers or insight would be gratefully received. Thank you.