-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Attempt to remove non-JNI local reference, dumping thread #9688
Comments
I'm also seeing a lot of:
On a Samsung Galaxy J3 when playing around with GeoJSON sources. |
I can tell you: its not related to mapbox. My guess it has something to do what I found in my logs ActivityManager: Unable to start service Intent { act=com.google.android.gms.ads.identifier.service.START pkg=com.google.android.gms } U=0: not found, then after a couple of seconds: art : Attempt to remove non-JNI local reference, dumping thread |
It's related to some components of Mapbox. (I'm right now debugging something else, semi related). But seeing a lot of those lines in the logs. And they have the same PID as the activity that uses mapbox (and NavigationView over at https://github.com/mapbox/mapbox-navigation-android ) |
I was able to track this log down to this exact method (but not sure if its limited too, I see the log a ton but I also call this method a ton)
|
Using genymotion, I notice I have this bug when activating the hardware gps location. Is that possible that it is linked to the |
@mayardb probably related to updating the underlying geojsonsource. |
@tobrun I could reproduce this in master in Query Source Features It does happen when calling |
I found it happens a lot when using the new location layer plug-in, as mentioned by @mayardb - when I disable the plugin, my logcat is back to normal (only 2 lines of "Attempt to remove non-jni ...", against hundreds). |
(this is implementation specific because we are calling |
I've also been facing this issue for several months and still encounter it. I get thousands of these logs in few seconds when I launch my app. I use the LocationLayerPlugin too, as mentioned above. |
I'm jumping in and reporting the same exact thing, moving of camera + LocationLayerPlugin make the app generate hundreds of lines of Warnings. |
It looks like it's logged whenever |
Furthermore, I can confirm that every single call to paint or layout property setters from the JNI results in I have a hunch that it happens during the values conversion, but would love to have some additional eyes on it. /cc @ivovandongen |
Also experiencing this with locationplugin |
Having same issue, when using ValueAnimator to change icon size of INFINITE duration. ValueAnimator markerAnimator = new ValueAnimator();
markerAnimator.setObjectValues(1f, 1.5f, 1f);
markerAnimator.setDuration(1200);
markerAnimator.setRepeatCount(ValueAnimator.INFINITE);
markerAnimator.addUpdateListener(animation -> symbolLayer.setProperties(
iconSize(switchCase(
get("suggested"), literal((float) markerAnimator.getAnimatedValue()),
literal(1f)
)
)
));
markerAnimator.start(); It is causing so much log spam, that it reaches limit after few minutes. I've re-plug after minutes. Such a pain when debugging. Is there any workaround? |
Yes, as mentioned before, this log will appear with every |
Thanks for your prompt response. symbolLayer.setProperties(
iconImage(switchCase(
get("active"), literal("poi-active"),
get("visited"), literal("poi-visited"),
literal("poi-unvisited")
)
)
); If so, that I'm already doing for ^ such properties. But for animating iconSize up and down continuously I've used ValueAnimator. Is there any Expression equivalent for the same? Thanks for your help. |
Yes, that would be correct. In the animation example above you are not really leveraging data-driven nature of expressions but resetting the value every time manually. This should look more like this:
Where
I hope this helps! |
Thanks Lucas, I just implemented this and one question: is this just placebo or there is noticeable performance impact using this? markerAnimator.addUpdateListener(animation -> {
if (nextPoint != null) {
nextPoint.addNumberProperty("icon-size", (float) animation.getAnimatedValue());
mapData.setGeoJson(geojson);
}
}); Expression: symbolLayer.setProperties(
iconImage(switchCase(
get("active"), literal("poi-active"),
get("visited"), literal("poi-visited"),
literal("poi-unvisited")
)
),
iconSize(switchCase(
get("suggested"), get("icon-size"),
literal(1f)
))
); |
Unfortunately, there might be a performance impact, especially if your data-set is big. Another possibility would be using |
About data-set, it is just 2 Symbol and 2 Polygon. For now, I'll stick with DDS solution to suppress warnings but in case it affects performance severely, then will split moving point from original source. What do you think? Thanks for all the help. 😄 |
We have been hearing complaints about the following log message:
Capturing from a Chromium issue:
Discussion and related commits can be found in chromium/506850.
The text was updated successfully, but these errors were encountered: