Platform: Android
Mapbox SDK version: 5.4.1
Map should load in emulated Android device.

Map view loads but only renders the background layer. Attempting to interact in any way with the app produces these types of errors:

Note: we've tested this on computers with Intel Iris 6100 graphics cards and they are having no issues.
Here are some screenshots of the LogCat and the Event Log - I couldn't get any text because Android Studio keeps freezing.


cc @langsmith @cammace
Also started getting these errors after updating to Android Studio v3.0.1 (or whatever update came out ~a week ago). At least, updating from v3.0 to v3.0.1 was the thing that introduced the errors for me.
Only way I managed to "fix" it was by changing the OpenGL renderer to "SwiftShader" in the emulator extended controls:

While changing it introduced a perceptible lag and I can now see some tearing/jaggies/artifacts on the map when panning, it did bring my map back... which is all I wanted (until I have time to investigate the OpenGL errors).
For the sake of completeness -
Mid-2014 rMBP (11,3) with the dGPU (a GT750M) running Sierra 10.12.6
Android Studio v3.0.1 with whatever emulator is current as of 27 Feb 2018 01:17:55 GMT (sorry)
Mapbox SDK v5.3.2
Edit: no change using SDK v5.4.1 or v5.3.0
And fwiw, also using
Also, here's a possible solution I just came across (haven't tried for myself yet) - https://stackoverflow.com/a/48897719
@samfader Why do you have the logs as a picture? Its hard to find this bug by doing a search using error log. Also the logs are missing part of it.
Full logs:
Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
@indrek-koue noted in the OP:
Here are some screenshots of the LogCat and the Event Log - I couldn't get any text because Android Studio keeps freezing.
Did a test with Android Emulator 27.1.12 (Nexus_6_API_23), Mapbox SDK version 5.5.0 with similar results:
03-06 22:59:14.228 1371-1689/? W/audio_hw_generic: Hardware backing HAL too slow, could only write 0 of 661 frames
03-06 22:59:14.269 17676-17974/com.xxx.android.dev E/Surface: getSlotFromBufferLocked: unknown buffer: 0x9adc61a0
03-06 22:59:14.279 17676-17771/com.xxx.android.dev E/Surface: getSlotFromBufferLocked: unknown buffer: 0x9adc6240
03-06 22:59:14.293 1271-1271/? W/SurfaceFlinger: couldn't log to binary event log: overflow.
03-06 22:59:17.102 17676-17991/com.xxx.android.dev I/EGLConfigChooser:267: In emulator: false
[ 03-06 22:59:17.103 17676:17991 D/ ]
HostConnection::get() New Host Connection established 0x986f40c0, tid 17991
03-06 22:59:17.106 17676-17676/com.xxx.android.dev W/PathParser: Points are too far apart 4.000000596046461
03-06 22:59:17.145 17676-17991/com.xxx.android.dev E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf
03-06 22:59:17.145 17676-17991/com.xxx.android.dev E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008824
03-06 22:59:17.234 17676-17771/com.xxx.android.dev E/Surface: getSlotFromBufferLocked: unknown buffer: 0x9adc2140
03-06 22:59:17.271 1271-1271/? W/SurfaceFlinger: couldn't log to binary event log: overflow.
03-06 22:59:17.441 17676-17990/com.xxx.android.dev W/art: Attempt to remove non-JNI local reference, dumping thread
03-06 22:59:17.607 17676-17992/com.xxx.android.dev W/art: Attempt to remove non-JNI local reference, dumping thread
03-06 22:59:20.090 1371-1690/? W/audio_hw_generic: Not supplying enough data to HAL, expected position 113484799 , only wrote 113220046
Note "In emulator: false".
Event log:
0:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform2fv:3303 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform2fv:3303 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform1f:3268 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniform4fv:3359 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
10:12 AM Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glUniformMatrix4fv:3400 error 0x502
I dunno if it is related to graphic card, but on mine Intel Iris 640 the issue is reproducing the same.
@tobrun whats the status of this issue? This issue is not related to GPU of the host device, its related to the version of android emulator. Currently Mapbox android SDK is not usable in the newest emulator and it crashes the Android studio (due the amount of error logs).
More details of this issue in a duplicate task of this issue: https://github.com/mapbox/mapbox-gl-native/issues/11394
inEmulator() in EGLConfigChooser.java returns false when running on later versions of the emulators. Should be a relatively easy fix If that's the only issue.
I've modified EGLConfigChooser to return true from inEmulator(), but the problem persists
Btw, Genymotion works fine
Full debug log:
java.lang.Error: glUniformMatrix4fv(location, 1, GL_FALSE, util::convert < float > (t).data()): Error GL_INVALID_OPERATION at / Users / Nurbot / mapbox - gl - native / src / mbgl / gl / uniform.cpp: 53
at com.mapbox.mapboxsdk.maps.renderer.MapRenderer.nativeRender(Native Method)
at com.mapbox.mapboxsdk.maps.renderer.MapRenderer.onDrawFrame(MapRenderer.java: 90)
at com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer.onDrawFrame(GLSurfaceViewMapRenderer.java: 55)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java: 1571)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java: 1270)
In emulator version 27.2.1 works smoothly if renderer is ANGLE (D3D11), also works but lags a lot if SwiftShader is used.
So the solution for now is to update emulator to version 27.2.1, go Settings - Advanced and select OpenGL ES renderer - ANGLE (D3D11)
I took a look at this before the weekend and it turns out this got introduced inadvertently by trying to duck under the maximum vertex attribute limit in #9373. The problem seems to be that in the opengl implementation in the emulator, linking the program again leads to a duplication or shift of the uniform locations. This results in an error when trying to set data on any uniform (the mat4 version is just the first one to get hit).
This is somewhat apparent when running a gl trace on it.

I am not sure wether the behaviour is defined in this case, but in any case it is solved by re-binding the uniforms after re-linking the program.
Changing to Software Renderer (GLES 1.1) in Emulator device Advanced settings worked for me.
Most helpful comment
In emulator version 27.2.1 works smoothly if renderer is ANGLE (D3D11), also works but lags a lot if SwiftShader is used.
So the solution for now is to update emulator to version 27.2.1, go Settings - Advanced and select OpenGL ES renderer - ANGLE (D3D11)