I setup up the hellomap example and am getting the following errors
Solution 1:
Viewing the logcat output, I found the full (native) crash dump:
07-27 16:53:17.294 2488 2993 I magma-graphics-opengl: [INFO ] magma-graphics-opengl - Vendor string: Google (Intel Open Source Technology Center)
07-27 16:53:17.294 2488 2993 I magma-graphics-opengl: [INFO ] magma-graphics-opengl - Renderer string: Android Emulator OpenGL ES Translator (Mesa DRI Intel(R) HD Graphics (Coffeelake 3x8 GT3) )
07-27 16:53:17.294 2488 2993 I magma-graphics-opengl: [INFO ] magma-graphics-opengl - OpenGL ES 2.0
07-27 16:53:17.295 2488 2993 I magma-graphics-opengl: [INFO ] magma-graphics-opengl - Extensions: GL_EXT_debug_marker GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_depth24 GL_OES_depth32 GL_OES_element_index_uint GL_OES_texture_float GL_OES_texture_float_linear GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_packed_depth_stencil GL_OES_texture_npot GL_OES_rgb8_rgba8 GL_EXT_color_buffer_half_float GL_EXT_texture_format_BGRA8888 ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_dma_v1 ANDROID_EMU_async_unmap_buffer GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_2
07-27 16:53:17.297 2967 2967 E ConfigUpdater: ignoring update request
07-27 16:53:17.297 2488 2993 I magma-graphics-opengl: [INFO ] magma-graphics-opengl - Parsed OpenGL GPU info string - VendorId=Unknown ModelFamily= ModelCode=0
07-27 16:53:17.308 2967 2967 E ConfigUpdater: ignoring update request
07-27 16:53:17.314 2967 2967 E ConfigUpdater: ignoring update request
07-27 16:53:17.314 2488 2993 E CL_magma: [ERROR] CL_magma - Couldn't get context config: no error
07-27 16:53:17.314 2488 2993 I CL_magma: [INFO ] CL_magma - Failed to set rendering parameters with anti-aliasing. Will retry without anti-aliasing.
07-27 16:53:17.315 2879 2879 D PhenotypeManager: Registered: Status{statusCode=SUCCESS, resolution=null}
07-27 16:53:17.317 2967 2967 E ConfigUpdater: ignoring update request
07-27 16:53:17.317 2488 2993 D EGL_emulation: eglCreateContext: 0x80c17f00: maj 2 min 0 rcv 2
07-27 16:53:17.317 2488 2993 D EGL_emulation: eglMakeCurrent: 0x80c17f00: ver 2 0 (tinfo 0x80e7c380)
07-27 16:53:17.319 2967 2967 E ConfigUpdater: ignoring update request
07-27 16:53:17.325 2488 2993 E CL_magma: [ERROR] CL_magma - Unable to open shader file 'shaders/gles2.0/Primitive.shaderb'
07-27 16:53:17.325 2488 2993 E CL_magma: [ERROR] CL_magma - Unable to open shader file 'shaders/gles2.0/Default.shaderb'
07-27 16:53:17.325 2488 2993 E CL_magma: [ERROR] CL_magma - Failed to load texture file 'spot_light_glow.rgba4.tex'
07-27 16:53:17.325 2488 2993 E CL_magma: [ERROR] CL_magma - Failed to load texture file 'light_flare.rgba4.tex'
07-27 16:53:17.325 2488 2993 F CL_magma: [FATAL] CL_magma - Couldn't load the default shader.
--------- beginning of crash
07-27 16:53:17.325 2488 2993 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 2993 (Thread-45), pid 2488 (om.here.routing)
07-27 16:53:17.334 2126 2985 I Icing : IndexChimeraService.getServiceInterface callingPackage=com.google.android.apps.messaging componentName=null serviceId=36
07-27 16:53:17.336 2126 3016 I Icing : IndexChimeraService.getServiceInterface callingPackage=com.google.android.gms componentName=null serviceId=36
07-27 16:53:17.337 2967 2967 E ConfigUpdater: ignoring update request
07-27 16:53:17.343 2131 2271 W MediaScanner: Error opening directory '/oem/media/', skipping: No such file or directory.
07-27 16:53:17.347 2967 2967 E ConfigUpdater: ignoring update request
07-27 16:53:17.348 1980 1980 I AlarmClock: AlarmInitReceiver android.intent.action.BOOT_COMPLETED
07-27 16:53:17.299 2488 2488 W Thread-45: type=1400 audit(0.0:9): avc: denied { read } for name="uptime" dev="proc" ino=4026531999 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0
07-27 16:53:17.351 2049 2049 I Dialer : VvmOmtpService - onBoot
07-27 16:53:17.358 3021 3021 I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
07-27 16:53:17.359 1527 1527 I /system/bin/tombstoned: received crash request for pid 2488
07-27 16:53:17.359 3021 3021 I crash_dump32: performing dump of process 2488 (target tid = 2993)
07-27 16:53:17.359 3021 3021 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-27 16:53:17.359 3021 3021 F DEBUG : Build fingerprint: 'google/sdk_gphone_x86/generic_x86:8.1.0/OSM1.180201.007/4586646:user/release-keys'
07-27 16:53:17.359 3021 3021 F DEBUG : Revision: '0'
07-27 16:53:17.359 3021 3021 F DEBUG : ABI: 'x86'
07-27 16:53:17.359 3021 3021 F DEBUG : pid: 2488, tid: 2993, name: Thread-45 >>> com.here.routing <<<
07-27 16:53:17.360 3021 3021 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
07-27 16:53:17.361 3021 3021 F DEBUG : Abort message: '[FATAL] CL_magma - Couldn't load the default shader.'
07-27 16:53:17.361 3021 3021 F DEBUG : eax 00000000 ebx 000009b8 ecx 00000bb1 edx 00000006
07-27 16:53:17.362 3021 3021 F DEBUG : esi 0000001e edi 000009b8
07-27 16:53:17.362 3021 3021 F DEBUG : xcs 00000073 xds 0000007b xes 0000007b xfs 0000003b xss 0000007b
07-27 16:53:17.362 3021 3021 F DEBUG : eip a9bf3ac4 ebp 83146205 esp 80afa238 flags 00000286
Inspecting the HERE .aar, I found that there were no GLES 2.0 shaders present at all, so I proceeded under the assumption I would need to get the Android Virtual Device to run under GLES 3.0 mode for the HERE SDK to work.
I'm on an Intel NUC that I know supports OpenGL ES 3.2, so didn't make sense that the AVD wasn't using 3.0.
Apparently, you need to forcibly enable OpenGL ES 3.2 for some graphics cards, per the answer from this question:
echo "GLESDynamicVersion = on" >> ~/.android/advancedFeatures.ini
I restarted Android Studio and the AVD (which cold booted, indicating it noticed the configuration change) and the crash went away.