When looking into the Android CI tests being flaky in #6546. I'm able to reproduce our test harness being unstable but I occasionally run into the error below when running one of the runtimestyle test:
java.lang.Error: eglSwapBuffers() failed
at com.mapbox.mapboxsdk.maps.NativeMapView.nativeRender(Native Method)
at com.mapbox.mapboxsdk.maps.NativeMapView.render(NativeMapView.java:141)
at com.mapbox.mapboxsdk.maps.MapView.onDraw(MapView.java:1431)
at android.view.View.draw(View.java:17067)
at android.view.View.updateDisplayListIfDirty(View.java:16049)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3748)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3728)
at android.view.View.updateDisplayListIfDirty(View.java:16012)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3748)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3728)
at android.view.View.updateDisplayListIfDirty(View.java:16012)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3748)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3728)
at android.view.View.updateDisplayListIfDirty(View.java:16012)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3748)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3728)
at android.view.View.updateDisplayListIfDirty(View.java:16012)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3748)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3728)
at android.view.View.updateDisplayListIfDirty(View.java:16012)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3748)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3728)
at android.view.View.updateDisplayListIfDirty(View.java:16012)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:656)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:662)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:770)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2796)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2604)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2211)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6301)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:683)
at android.view.Choreographer.doFrame(Choreographer.java:619)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Looking at the logcat I'm seeing:
10-11 08:25:36.963 1060-1116/? I/ActivityManager: Displayed com.mapbox.mapboxsdk.testapp/.activity.style.RuntimeStyleTestActivity: +519ms
10-11 08:25:37.092 22290-22290/com.mapbox.mapboxsdk.testapp E/MapboxMap: isMapboxReady called with value true
10-11 08:25:37.094 22290-22305/com.mapbox.mapboxsdk.testapp I/FillLayerTest: Adding layer
10-11 08:25:37.113 22290-22305/com.mapbox.mapboxsdk.testapp I/FillLayerTest: fill-pattern
10-11 08:25:37.114 22290-22290/com.mapbox.mapboxsdk.testapp E/mbgl: {pboxsdk.testapp}[OpenGL]: eglSwapBuffers() returned error 12301
10-11 08:25:37.149 22290-22290/com.mapbox.mapboxsdk.testapp D/AndroidRuntime: Shutting down VM
10-11 08:25:37.155 1060-1116/? I/WindowManager: Destroying surface Surface(name=Starting com.mapbox.mapboxsdk.testapp) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.AppWindowToken.destroySurfaces:363 com.android.server.wm.WindowStateAnimator.finishExit:565 com.android.server.wm.WindowStateAnimator.stepAnimationLocked:491 com.android.server.wm.WindowAnimator.updateWindowsLocked:303 com.android.server.wm.WindowAnimator.animateLocked:704
10-11 08:25:37.158 22290-22290/com.mapbox.mapboxsdk.testapp E/MonitoringInstrumentation: Exception encountered by: Thread[main,5,main]. Dumping thread state to outputs and pining for the fjords.
java.lang.Error: eglSwapBuffers() failed
at com.mapbox.mapboxsdk.maps.NativeMapView.nativeRender(Native Method)
at com.mapbox.mapboxsdk.maps.NativeMapView.render(NativeMapView.java:141)
at com.mapbox.mapboxsdk.maps.MapView.onDraw(MapView.java:1431)
at android.view.View.draw(View.java:17067)
cc @ivovandongen
Looked into the error code and reflects:
public static final int EGL_BAD_SURFACE = 12301;
I've been experiencing the same thing. It's been hitting a lot of Samsung devices more.
I'm seeing this error on an LG Optimus LG-P716.
I'm seeing this error on an Lenovo ZUK Z2.
same error on Nexus 5 with android 6
same error. After some tests :
100% repro : samsung S4 (4.2.2) and samsung galaxy note 2 (4.3)
Not reproduce on : Samsung S4 (5.0) and samsung galaxy S3 (4.1.2)
Any update on this ?
I can reproduce in one case but there are several cases where I do see this error
One case where I can reproduce it is :
While it try to Remove non existing layer
mapboxMap.removeLayer(layerID); // here layer for layerID doesn't exists for some reason
Steps to reproduce :
- Start Fragment (This myMapFragment start MapView))
- Select any pin ... open detail of that pin from map (this starts Different xFragment started on the top of myMapFragment)
(Also notice xFragment also starts small MapView instance)
- Press Up / Back button from view in xFragment
- While it try to Remove non existing layer in myMapFragment
mapboxMap.removeLayer(layerID); // here layer for layerID doesn't exists
- Boom crash reproduced
Though I don't see this error if I check existence of layer before removing it for e.g.
if(mapboxMap.getLayer(layerID) != null) {
try {
mapboxMap.removeLayer(layerID);
} catch (NoSuchLayerException e) {
e.printStackTrace();
}
}
I could reproduce this error with MapboxSDK 5.0.2 when I go to recent apps and resumed application several times. Now with 5.1.0-beta2 it's more stable, but still kinda similar crash sometimes could be reproduced. Maybe this is because my custom map style is quite heavy.
05-12 12:33:39.068 24762-24762/com.karttakeskus.loisto V/ActivityThread: updateVisibility : ActivityRecord{ca8d976 token=android.os.BinderProxy@fcc4ace {com.karttakeskus.loisto/com.karttakeskus.loisto.ui.MainActivity}} show : false
05-12 12:33:39.438 24762-24762/com.karttakeskus.loisto E/libEGL: eglCreateWindowSurface: native_window_api_connect (win=0x9cbe7c08) failed (0xffffffea) (already connected to another API?)
05-12 12:33:39.438 24762-24762/com.karttakeskus.loisto E/libEGL: eglCreateWindowSurface:617 error 3003 (EGL_BAD_ALLOC)
05-12 12:33:39.438 24762-24762/com.karttakeskus.loisto E/mbgl: {takeskus.loisto}[OpenGL]: eglCreateWindowSurface() returned error 12291
05-12 12:33:39.448 24762-24762/com.karttakeskus.loisto D/AndroidRuntime: Shutting down VM
05-12 12:33:39.758 24762-24899/com.karttakeskus.loisto E/File: fail readDirectory() errno=2
05-12 12:33:39.758 24762-24899/com.karttakeskus.loisto E/File: fail readDirectory() errno=2
05-12 12:33:39.758 24762-24762/com.karttakeskus.loisto E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.karttakeskus.loisto, PID: 24762
java.lang.Error: eglCreateWindowSurface() failed
at com.mapbox.mapboxsdk.maps.NativeMapView.nativeCreateSurface(Native Method)
at com.mapbox.mapboxsdk.maps.NativeMapView.createSurface(NativeMapView.java:157)
at com.mapbox.mapboxsdk.maps.MapView$SurfaceCallback.surfaceCreated(MapView.java:440)
at android.view.SurfaceView.updateWindow(SurfaceView.java:712)
at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:316)
at android.view.View.dispatchWindowVisibilityChanged(View.java:10439)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1330)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1330)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1330)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1330)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1330)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1330)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1330)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1330)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1330)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1801)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1488)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7451)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)
at android.view.Choreographer.doCallbacks(Choreographer.java:695)
at android.view.Choreographer.doFrame(Choreographer.java:631)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
We have heard of more recent reports of this issue. Reopening. Though there isn't a clear sign what is triggering the exception to be thrown.
When I don't show location view, then snapshot, finally I show the location view.
The code are as follow.
The crash happens usually.
mapboxMap.getMyLocationViewSettings().setEnabled(false);
mapboxMap.snapshot(new MapboxMap.SnapshotReadyCallback() {
@Override
public void onSnapshotReady(Bitmap snapshot) {
container.draw(new Canvas(snapshot));
mapboxMap.getMyLocationViewSettings().setEnabled(true);
isSnapshotting = false;
}
});
log as follow
java.lang.Error: eglSwapBuffers() failed
at com.mapbox.mapboxsdk.maps.NativeMapView.nativeRender(Native Method)
at com.mapbox.mapboxsdk.maps.NativeMapView.render(NativeMapView.java:141)
at com.mapbox.mapboxsdk.maps.MapView.onDraw(MapView.java:1431)
at android.view.View.draw(View.java:17067)
@tobrun
I have this issue with Samsung Galaxy S4
Mapbox Android SDK 4.1.1
Edit: mine could be related to https://github.com/mapbox/mapbox-gl-native/issues/5721 I will attempt to upgrade.
I have the same crash with just one device so far:
Mapbox Android SDK 5.1.0
Android 4.2.2
Sony Experia M - C2004
Fatal Exception: java.lang.Error: program failed to link
at com.mapbox.mapboxsdk.maps.NativeMapView.nativeRender(Unknown Source)
at com.mapbox.mapboxsdk.maps.NativeMapView.render(Unknown Source)
at com.mapbox.mapboxsdk.maps.MapView.onDraw(Unknown Source)
@henriquemelissopoulos That seems to be a separate issue. Could you create a new ticket for that please?
This error randomly appears on some of my devices (including Samsung Galaxy J1 mini, Sony XPERIA, LG Nexus 5x), especially when the map gets visible for the first time.
Logs:
java.lang.Error: eglSwapBuffers() failed
at com.mapbox.mapboxsdk.maps.NativeMapView.nativeRender(Native Method)
at com.mapbox.mapboxsdk.maps.NativeMapView.render(NativeMapView.java:179)
at com.mapbox.mapboxsdk.maps.MapView.onDraw(MapView.java:407)
at android.view.View.draw(View.java:16536)
at android.widget.FrameLayout.draw(FrameLayout.java:598)
at android.view.View.updateDisplayListIfDirty(View.java:15466)
at android.view.View.getDisplayList(View.java:15488)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3697)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:15426)
at android.view.View.getDisplayList(View.java:15488)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3697)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:15426)
at android.view.View.getDisplayList(View.java:15488)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3697)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:15426)
at android.view.View.getDisplayList(View.java:15488)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3697)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:15426)
at android.view.View.getDisplayList(View.java:15488)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3697)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:15426)
at android.view.View.getDisplayList(View.java:15488)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3697)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:15426)
at android.view.View.getDisplayList(View.java:15488)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3697)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:15426)
at android.view.View.getDisplayList(View.java:15488)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3697)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:15426)
at android.view.View.getDisplayList(View.java:15488)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:309)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:315)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:354)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2956)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2753)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2339)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1314)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7057)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:829)
at android.view.Choreographer.doCallbacks(Choreographer.java:606)
at android.view.Choreographer.doFrame(Choreographer.java:576)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:815)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6934)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Hi was this already fixed? I got the same error
I got this when I put mapbox in a fragment on a viewpager.
09-26 17:29:14.903 423-773/? E/SurfaceFlinger: Failed to find layer (SurfaceView - com.fullspeedtech.flipmap/com.fullspeedtech.flipmap.screen.main.MainActivity#0) in layer parent (no-parent).
09-26 17:29:14.904 423-774/? E/SurfaceFlinger: Failed to find layer (Background for - SurfaceView - com.fullspeedtech.flipmap/com.fullspeedtech.flipmap.screen.main.MainActivity#0) in layer parent (no-parent).
09-26 17:06:27.705 28348-28348/com.fullspeedtech.flipmap E/libEGL: eglCreateWindowSurface: native_window_api_connect (win=0x736669a010) failed (0xffffffea) (already connected to another API?)
09-26 17:06:27.705 28348-28348/com.fullspeedtech.flipmap E/libEGL: eglCreateWindowSurface:491 error 3003 (EGL_BAD_ALLOC)
09-26 17:06:27.705 28348-28348/com.fullspeedtech.flipmap E/mbgl: {eedtech.flipmap}[OpenGL]: eglCreateWindowSurface() returned error 12291
09-26 17:06:27.706 28348-28348/com.fullspeedtech.flipmap D/AndroidRuntime: Shutting down VM
09-26 17:06:27.708 28348-28348/com.fullspeedtech.flipmap E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.fullspeedtech.flipmap, PID: 28348
java.lang.Error: eglCreateWindowSurface() failed
at com.mapbox.mapboxsdk.maps.NativeMapView.nativeCreateSurface(Native Method)
at com.mapbox.mapboxsdk.maps.NativeMapView.createSurface(NativeMapView.java:158)
at com.mapbox.mapboxsdk.maps.MapView$SurfaceCallback.surfaceCreated(MapView.java:427)
at android.view.SurfaceView.updateSurface(SurfaceView.java:664)
at android.view.SurfaceView$2.onPreDraw(SurfaceView.java:143)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:977)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2337)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1386)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6733)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Hi, just to confirm that same thing happend on Android 5.0. This is the stack trace from ACRA.
STACK_TRACE=java.lang.Error: eglSwapBuffers() failed
at com.mapbox.mapboxsdk.maps.NativeMapView.nativeRender(Native Method)
at com.mapbox.mapboxsdk.maps.NativeMapView.render(NativeMapView.java:179)
at com.mapbox.mapboxsdk.maps.MapView.onDraw(MapView.java:406)
at android.view.View.draw(View.java:16186)
at android.widget.FrameLayout.draw(FrameLayout.java:592)
at android.view.View.updateDisplayListIfDirty(View.java:15109)
at android.view.View.getDisplayList(View.java:15132)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
at android.view.View.updateDisplayListIfDirty(View.java:15069)
at android.view.View.getDisplayList(View.java:15132)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
at android.view.View.updateDisplayListIfDirty(View.java:15069)
at android.view.View.getDisplayList(View.java:15132)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
at android.view.View.updateDisplayListIfDirty(View.java:15069)
at android.view.View.getDisplayList(View.java:15132)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
at android.view.View.updateDisplayListIfDirty(View.java:15069)
at android.view.View.getDisplayList(View.java:15132)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
at android.view.View.updateDisplayListIfDirty(View.java:15069)
at android.view.View.getDisplayList(View.java:15132)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
at android.view.View.updateDisplayListIfDirty(View.java:15069)
at android.view.View.getDisplayList(View.java:15132)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
at android.view.View.updateDisplayListIfDirty(View.java:15069)
at android.view.View.getDisplayList(View.java:15132)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
at android.view.View.updateDisplayListIfDirty(View.java:15069)
at android.view.View.getDisplayList(View.java:15132)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
at android.view.View.updateDisplayListIfDirty(View.java:15069)
at android.view.View.getDisplayList(View.java:15132)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:275)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:281)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:320)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2751)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2584)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2176)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1191)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6642)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
at android.view.Choreographer.doCallbacks(Choreographer.java:590)
at android.view.Choreographer.doFrame(Choreographer.java:560)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5938)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
CUSTOM_DATA=
PHONE_MODEL=SM-N9005
BRAND=samsung
ANDROID_VERSION=5.0
I had 34 reports of this error in last month.

@ivovandongen Is this fixed with GLSurfaceView?
Same issues with Samsung S7. It seems to occur when GPS position are not activated on the phone...
com.mapbox.mapboxsdk.maps.NativeMapView.nativeRender(Native Method)
com.mapbox.mapboxsdk.maps.NativeMapView.render()NativeMapView.java:143
com.mapbox.mapboxsdk.maps.MapView.onDraw()MapView.java:1493
android.view.View.draw()View.java:16184
android.view.View.updateDisplayListIfDirty()View.java:15180
android.view.View.draw()View.java:15954
android.view.ViewGroup.drawChild()ViewGroup.java:3609
android.view.ViewGroup.dispatchDraw()ViewGroup.java:3399
android.view.View.updateDisplayListIfDirty()View.java:15175
android.view.View.draw()View.java:15954
android.view.ViewGroup.drawChild()ViewGroup.java:3609
android.view.ViewGroup.dispatchDraw()ViewGroup.java:3399
android.view.View.draw()View.java:16187
android.support.v4.view.ViewPager.draw()ViewPager.java:2443
android.view.View.updateDisplayListIfDirty()View.java:15180
android.view.View.draw()View.java:15954
android.view.ViewGroup.drawChild()ViewGroup.java:3609
android.view.ViewGroup.dispatchDraw()ViewGroup.java:3399
android.view.View.updateDisplayListIfDirty()View.java:15175
android.view.View.draw()View.java:15954
android.view.ViewGroup.drawChild()ViewGroup.java:3609
android.view.ViewGroup.dispatchDraw()ViewGroup.java:3399
android.view.View.draw()View.java:16187
android.view.View.updateDisplayListIfDirty()View.java:15180
android.view.View.draw()View.java:15954
android.view.ViewGroup.drawChild()ViewGroup.java:3609
android.view.ViewGroup.dispatchDraw()ViewGroup.java:3399
android.view.View.updateDisplayListIfDirty()View.java:15175
android.view.View.draw()View.java:15954
android.view.ViewGroup.drawChild()ViewGroup.java:3609
android.view.ViewGroup.dispatchDraw()ViewGroup.java:3399
android.view.View.draw()View.java:16187
com.android.internal.policy.PhoneWindow$DecorView.draw()PhoneWindow.java:2690
android.view.View.updateDisplayListIfDirty()View.java:15180
android.view.ThreadedRenderer.updateViewTreeDisplayList()ThreadedRenderer.java:281
android.view.ThreadedRenderer.updateRootDisplayList()ThreadedRenderer.java:287
android.view.ThreadedRenderer.draw()ThreadedRenderer.java:322
android.view.ViewRootImpl.draw()ViewRootImpl.java:2615
android.view.ViewRootImpl.performDraw()ViewRootImpl.java:2434
android.view.ViewRootImpl.performTraversals()ViewRootImpl.java:2067
android.view.ViewRootImpl.doTraversal()ViewRootImpl.java:1107
android.view.ViewRootImpl$TraversalRunnable.run()ViewRootImpl.java:6013
android.view.Choreographer$CallbackRecord.run()Choreographer.java:858
android.view.Choreographer.doCallbacks()Choreographer.java:670
android.view.Choreographer.doFrame()Choreographer.java:606
android.view.Choreographer$FrameDisplayEventReceiver.run()Choreographer.java:844
android.os.Handler.handleCallback()Handler.java:739
android.os.Handler.dispatchMessage()Handler.java:95
android.os.Looper.loop()Looper.java:148
android.app.ActivityThread.main()ActivityThread.java:5417
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()ZygoteInit.java:726
com.android.internal.os.ZygoteInit.main()ZygoteInit.java:616
I met this issue many time by trace from crash report. Have you (Mapbox) do something to resolve it ??
Got this issue too on a "LG Optimus L7 II" device. Any news on this issue?
Got this issue on some devices type and API like

It happened on more than 300 users who using my app. Please tell me if you need more information. Thank you.
It happened on 49 of my users the last week:

Link to report: http://crashes.to/s/69348b491f3
I'm going to close this issue as all stacktraces refer to older version of the SDK (before MapRenderer was introduced). There is no more NativeMapView.nativeRender etc.
If issues persist, please update to the latest version of the SDK first please.
Most helpful comment
Got this issue on some devices type and API like

It happened on more than 300 users who using my app. Please tell me if you need more information. Thank you.