Hmm, just found something odd.
I have a JME3Tests project which was created a while ago. I’ve built a version of JME3 core from the latest SVN and linked to the JME3Tests project to it.
Whenever I try and run any of the examples I get the same error (tried some of the tutorial ones as well as some others).
[java]SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
java.lang.NullPointerException
at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderSourceData(LwjglRenderer.java:948)
at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderData(LwjglRenderer.java:1044)
at com.jme3.renderer.lwjgl.LwjglRenderer.setShader(LwjglRenderer.java:1129)
at com.jme3.material.Material.render(Material.java:1058)
at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:518)
at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:301)
at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:353)
at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:754)
at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:710)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:974)
at com.jme3.renderer.RenderManager.render(RenderManager.java:1016)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:251)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:149)
at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:182)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:223)
at java.lang.Thread.run(Thread.java:722)
AL lib: ReleaseALC: 1 device not closed
Exception: java.lang.AbstractMethodError thrown from the UncaughtExceptionHandler in thread “LWJGL Renderer Thread”
[/java]
I then changed my game project to link against that same freshly built jme3-core and got the same error.
[java]SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
java.lang.NullPointerException
at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderSourceData(LwjglRenderer.java:948)
at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderData(LwjglRenderer.java:1044)
at com.jme3.renderer.lwjgl.LwjglRenderer.setShader(LwjglRenderer.java:1129)
at com.jme3.material.Material.render(Material.java:1058)
at com.jme3.niftygui.RenderDeviceJme.renderQuad(RenderDeviceJme.java:339)
at de.lessvoid.nifty.render.ScalingRenderDevice.renderQuad(ScalingRenderDevice.java:67)
at de.lessvoid.nifty.render.NiftyRenderEngineImpl.renderQuad(NiftyRenderEngineImpl.java:217)
at de.lessvoid.nifty.elements.render.PanelRenderer.render(PanelRenderer.java:54)
at de.lessvoid.nifty.elements.Element.renderElement(Element.java:724)
at de.lessvoid.nifty.elements.Element.render(Element.java:702)
at de.lessvoid.nifty.screen.Screen.renderLayers(Screen.java:313)
at de.lessvoid.nifty.Nifty.render(Nifty.java:310)
at com.jme3.niftygui.NiftyJmeDisplay.postQueue(NiftyJmeDisplay.java:169)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:970)
at com.jme3.renderer.RenderManager.render(RenderManager.java:1022)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:251)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:149)
at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:182)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:223)
at java.lang.Thread.run(Thread.java:722)
[/java]
The line in question seems to be in updateShaderSourceData, which has had a null value passed in for language.
Is this a compatibility thing where I need to update another library as well or something more serious?
Thanks,
Z
It was a library incompatibility thing, I made sure all the other libs were from the same source and it fixed it.
1 Like