I was trying to use Uniform Buffer Objects, and in the end they work well, however you can't use jogamp.opengl.es3.GLES3Impl.glGetUniformIndices(GLES3Impl.java:4210) as it throws a fatal error as showen below. To anyone else who encounters this my workaround was to declare teh uifrom block like this layout ( std140, shared ) uniform FFP_Uniform_Block { mat4 glProjectionMatrix; mat4 glProjectionMatrixInverse; ... then output the offset positions of all the fields on my PC and hard code them into the code. Nasty but perfectly allowable and it works. Begining of log showing correct setup: 04-24 10:57:42.199 14988-15521/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: nativeVisualID 0x2 04-24 10:57:42.199 14988-15521/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: requestedCaps: GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/8/0, dbl, mono , hw, GLProfile[GLES2/GLES3.hw], on-scr[.]] 04-24 10:57:42.200 14988-15521/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: chosenCaps : GLCaps[egl cfg 0xb, vid 0x2: rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 24/8/0, dbl, mono , hw, GLProfile[GLES2/GLES3.hw], on-scr[.], [0x45: GLES1, GLES2, GLES3, VG]] 04-24 10:57:42.201 14988-15521/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: setupInputListener(enable true) - main-Display-.android_nil-1-EDT-1 04-24 10:57:42.203 14988-15521/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: setupInputListener - enable GenericMotionListener - main-Display-.android_nil-1-EDT-1 04-24 10:57:42.204 14988-15521/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: createNativeImpl X: eglDevice 0xc90abfe, EGLGraphicsDevice[type .egl, v1.4.0, connection decon, unitID 0, handle 0x1, owner true, NullToolkitLock[obj 0x274cf5f]], eglSurfaceHandle 0xffffffffb8de5430 04-24 10:57:42.205 14988-15521/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: reconfigureWindowImpl.setFullscreen post creation (setContentView()) n/a 04-24 10:57:42.205 14988-15521/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: requestFocusImpl: reparented true 04-24 10:57:42.205 14988-15521/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: requestFocusImpl: reparented true 04-24 10:57:42.214 14988-15521/com.ingenieur.ese.eseandroid W/syserr: GLEventListenerinit 04-24 10:57:42.221 14988-14988/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: surfaceChanged: f 2 -> 3, 1920x1080, current surfaceHandle: 0xffffffffb90ada70 - on thread main 04-24 10:57:42.225 14988-14988/com.ingenieur.ese.eseandroid E/System.err: monitorModeChanged: MonitorEvent[EVENT_MONITOR_MODE_CHANGED, source Monitor[Id 0x0 [primary], 101 x 61 mm, pixelScale [1.0, 1.0], viewport [ 0 / 0 1794 x 1080 ] [pixels], [ 0 / 0 1794 x 1080 ] [window], orig [Id 0x0, [ 1794 x 1080 pixels x 32 bpp ] @ 60.0 Hz, flags [], 90 degr], curr [Id 0x0, [ 1080 x 1794 pixels x 32 bpp ] @ 60.0 Hz, flags [], 90 degr], modeChanged false, modeCount 5], mode [Id 0x0, [ 1080 x 1794 pixels x 32 bpp ] @ 60.0 Hz, flags [], 90 degr], NEWTEvent[source:jogamp.newt.MonitorDeviceImpl, consumed false, when:1461488262223 d 2ms]] 04-24 10:57:42.241 14988-15521/com.ingenieur.ese.eseandroid W/sysout: setAnisotropicFilterDegree=4 04-24 10:57:42.287 14988-15521/com.ingenieur.ese.eseandroid W/syserr: 3D [dev] @VERSION_BASE@-@VERSION_SUFFIX@-experimental @BUILDTIME_VERBOSE@ 04-24 10:57:42.599 14988-15521/com.ingenieur.ese.eseandroid W/syserr: Monitor detected: Monitor[Id 0x0 [primary], 101 x 61 mm, pixelScale [1.0, 1.0], viewport [ 0 / 0 1794 x 1080 ] [pixels], [ 0 / 0 1794 x 1080 ] [window], orig [Id 0x0, [ 1794 x 1080 pixels x 32 bpp ] @ 60.0 Hz, flags [], 90 degr], curr [Id 0x0, [ 1080 x 1794 pixels x 32 bpp ] @ 60.0 Hz, flags [], 90 degr], modeChanged false, modeCount 5] <snip> various general output </snip> 04-24 10:57:42.700 14988-14988/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: surfaceChanged: X 04-24 10:57:42.703 14988-14988/com.ingenieur.ese.eseandroid D/JogAmp.NEWT: surfaceRedrawNeeded - on thread main 04-24 10:57:42.784 14988-14998/com.ingenieur.ese.eseandroid I/art: Background partial concurrent mark sweep GC freed 44135(2MB) AllocSpace objects, 27(1676KB) LOS objects, 40% free, 19MB/32MB, paused 5.854ms total 55.603ms 04-24 10:57:42.791 14988-14998/com.ingenieur.ese.eseandroid W/art: Suspending all threads took: 6.458ms 04-24 10:57:44.018 14988-14994/com.ingenieur.ese.eseandroid W/art: Suspending all threads took: 8.352ms 04-24 10:57:46.019 14988-14994/com.ingenieur.ese.eseandroid W/art: Suspending all threads took: 8.125ms 04-24 10:57:46.523 14988-14994/com.ingenieur.ese.eseandroid W/art: Suspending all threads took: 10.270ms 04-24 10:57:47.028 14988-14994/com.ingenieur.ese.eseandroid W/art: Suspending all threads took: 13.654ms 04-24 10:57:48.524 14988-14994/com.ingenieur.ese.eseandroid W/art: Suspending all threads took: 5.975ms 04-24 10:57:50.839 14988-14998/com.ingenieur.ese.eseandroid I/art: Background partial concurrent mark sweep GC freed 11156(682KB) AllocSpace objects, 6(184KB) LOS objects, 24% free, 48MB/64MB, paused 2.064ms total 124.953ms 04-24 10:57:52.036 14988-14994/com.ingenieur.ese.eseandroid W/art: Suspending all threads took: 10.562ms 04-24 10:57:53.550 14988-14994/com.ingenieur.ese.eseandroid W/art: Suspending all threads took: 17.694ms 04-24 10:57:53.910 14988-14998/com.ingenieur.ese.eseandroid I/art: Background sticky concurrent mark sweep GC freed 125301(5MB) AllocSpace objects, 13(676KB) LOS objects, 9% free, 58MB/64MB, paused 9.391ms total 64.649ms <snip> various general output </snip> Successful call to gl2es3.glGetActiveUniformBlockiv: 04-24 10:57:55.635 14988-15561/com.ingenieur.ese.eseandroid W/sysout: blockSize!! 704 Next line is call to gl2es3.glGetUniformIndices: 04-24 10:57:55.817 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] JNI DETECTED ERROR IN APPLICATION: thread Thread[30,tid=15561,Runnable,Thread*=0xb91a0098,peer=0x1320c000,"J3D-Renderer-1"] using JNI after critical get 04-24 10:57:55.817 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] in call to GetObjectArrayElement 04-24 10:57:55.817 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] from void jogamp.opengl.es3.GLES3Impl.dispatch_glGetUniformIndices1(int, int, java.lang.String[], java.lang.Object, int, boolean, long) 04-24 10:57:55.817 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] "J3D-Renderer-1" prio=5 tid=30 Runnable 04-24 10:57:55.817 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] | group="Java3D" sCount=0 dsCount=0 obj=0x1320c000 self=0xb91a0098 04-24 10:57:55.817 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] | sysTid=15561 nice=0 cgrp=default sched=0/0 handle=0x99d29930 04-24 10:57:55.817 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] | state=R schedstat=( 0 0 0 ) utm=181 stm=576 core=0 HZ=100 04-24 10:57:55.817 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] | stack=0x99c27000-0x99c29000 stackSize=1038KB 04-24 10:57:55.817 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] | held mutexes= "mutator lock"(shared held) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #00 pc 00373de1 /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::ArtMethod*, void*)+168) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #01 pc 00353457 /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+150) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #02 pc 0025d57d /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+732) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #03 pc 0025dc55 /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+64) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #04 pc 000fd751 /system/lib/libart.so (art::ScopedCheck::AbortF(char const*, ...)+32) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #05 pc 001045d5 /system/lib/libart.so (art::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::JniValueType*) (.constprop.96)+8224) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #06 pc 0010dae5 /system/lib/libart.so (art::CheckJNI::GetObjectArrayElement(_JNIEnv*, _jobjectArray*, int)+392) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #07 pc 0002c604 /data/app/com.ingenieur.ese.eseandroid-1/lib/arm/libjogl_mobile.so (Java_jogamp_opengl_es3_GLES3Impl_dispatch_1glGetUniformIndices1__II_3Ljava_lang_String_2Ljava_lang_Object_2IZJ+340) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #08 pc 0161e1a7 /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void jogamp.opengl.es3.GLES3Impl.dispatch_glGetUniformIndices1(int, int, java.lang.String[], java.lang.Object, int, boolean, long)+178) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #09 pc 01683f13 /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void jogamp.opengl.es3.GLES3Impl.glGetUniformIndices(int, int, java.lang.String[], java.nio.IntBuffer)+630) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #10 pc 006179cf /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (javax.media.j3d.JoglesContext$LocationData javax.media.j3d.JoglesPipeline.getLocs(javax.media.j3d.JoglesContext, com.jogamp.opengl.GL2ES2)+3250) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #11 pc 006134bd /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.JoglesPipeline.executeIndexedGeometryArrayVA(javax.media.j3d.Context, javax.media.j3d.GeometryArrayRetained, int, boolean, boolean, int, int, int, int, int, java.nio.FloatBuffer, java.nio.DoubleBuffer, java.nio.FloatBuffer, java.nio.ByteBuffer, java.nio.FloatBuffer, int, int[], java.nio.FloatBuffer[], int, int[], int, int, java.lang.Object[], int, int[], int[], int)+168) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #12 pc 00625c77 /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.JoglesPipeline.executeIndexedGeometryVABuffer(javax.media.j3d.Context, javax.media.j3d.GeometryArrayRetained, int, boolean, boolean, int, int, int, int, int, java.nio.Buffer, java.nio.Buffer, float[], byte[], java.nio.FloatBuffer, int, int[], java.nio.FloatBuffer[], int, int[], int, int, java.lang.Object[], int, int[])+1530) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #13 pc 005c295f /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.IndexedGeometryArrayRetained.execute(javax.media.j3d.Canvas3D, javax.media.j3d.RenderAtom, boolean, boolean, float, int, boolean)+11610) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #14 pc 0087e92d /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.VertexArrayRenderMethod.renderGeo(javax.media.j3d.RenderAtomListInfo, javax.media.j3d.RenderMolecule, javax.media.j3d.Canvas3D)+328) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #15 pc 0087e6ed /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (boolean javax.media.j3d.VertexArrayRenderMethod.render(javax.media.j3d.RenderMolecule, javax.media.j3d.Canvas3D, javax.media.j3d.RenderAtomListInfo, int)+840) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #16 pc 007297e9 /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (boolean javax.media.j3d.RenderMolecule.render(javax.media.j3d.Canvas3D, int, int)+884) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #17 pc 007dd263 /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.TextureBin.renderList(javax.media.j3d.Canvas3D, int, javax.media.j3d.RenderMolecule)+230) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #18 pc 007dd0b7 /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.TextureBin.render(javax.media.j3d.Canvas3D, javax.media.j3d.RenderMolecule)+106) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #19 pc 007dd01d /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.TextureBin.render(javax.media.j3d.Canvas3D)+64) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #20 pc 003dac09 /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.AttributeBin.render(javax.media.j3d.Canvas3D)+388) 04-24 10:57:55.818 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #21 pc 0077c123 /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.ShaderBin.render(javax.media.j3d.Canvas3D)+118) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #22 pc 004c618b /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.EnvironmentSet.render(javax.media.j3d.Canvas3D)+118) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #23 pc 0063161b /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.LightBin.render(javax.media.j3d.Canvas3D)+118) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #24 pc 0071600b /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.RenderBin.renderOpaque(javax.media.j3d.Canvas3D)+86) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #25 pc 0073a713 /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.Renderer.doWork(long)+25134) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #26 pc 0040756b /data/app/com.ingenieur.ese.eseandroid-1/oat/arm/base.odex (void javax.media.j3d.J3dThread.run()+206) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #27 pc 000e68b1 /system/lib/libart.so (art_quick_invoke_stub_internal+64) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #28 pc 00406175 /system/lib/libart.so (art_quick_invoke_stub+188) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #29 pc 000ecea3 /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+182) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #30 pc 0032f5d7 /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+326) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #31 pc 003562d7 /system/lib/libart.so (art::Thread::CreateCallback(void*)+614) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #32 pc 00041d6f /system/lib/libc.so (__pthread_start(void*)+30) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] native: #33 pc 000190b3 /system/lib/libc.so (__start_thread+6) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at jogamp.opengl.es3.GLES3Impl.dispatch_glGetUniformIndices1(Native method) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at jogamp.opengl.es3.GLES3Impl.glGetUniformIndices(GLES3Impl.java:4210) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.JoglesPipeline.getLocs(JoglesPipeline.java:1555) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.JoglesPipeline.executeIndexedGeometryArrayVA(JoglesPipeline.java:864) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.JoglesPipeline.executeIndexedGeometryVABuffer(JoglesPipeline.java:843) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.IndexedGeometryArrayRetained.execute(IndexedGeometryArrayRetained.java:1516) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.VertexArrayRenderMethod.renderGeo(VertexArrayRenderMethod.java:92) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.VertexArrayRenderMethod.render(VertexArrayRenderMethod.java:69) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.RenderMolecule.render(RenderMolecule.java:1877) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.TextureBin.renderList(TextureBin.java:1360) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.TextureBin.render(TextureBin.java:1326) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.TextureBin.render(TextureBin.java:1319) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.AttributeBin.render(AttributeBin.java:441) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.ShaderBin.render(ShaderBin.java:273) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.EnvironmentSet.render(EnvironmentSet.java:524) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.LightBin.render(LightBin.java:415) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.RenderBin.renderOpaque(RenderBin.java:5664) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.Renderer.doWork(Renderer.java:1330) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448] at javax.media.j3d.J3dThread.run(J3dThread.java:271) 04-24 10:57:55.819 14988-15561/com.ingenieur.ese.eseandroid A/art: art/runtime/java_vm_ext.cc:448]
Do you obtain this fatal error when testing on several distinct devices?
I only have an HTC M8 and an HTC M9, both on marshmallow, I didn't test the M9 but given that it's also ES3 I expect it to follow the same call stack and have the same problem. Given that it happens in jogamp.opengl.es3.GLES3Impl.glGetUniformIndices(GLES3Impl.java:4210) it does not happen on my main windows development machine, obviously.