[SOLVED] Lemur NoClassDef BaseAppState

I’m getting started with the Lemur GUI library, and I have an issue with the first line:

GuiGlobals.initialize(this)

in simpleInitApp() returns this error:

java.lang.NoClassDefFoundError: com/jme3/app/state/BaseAppState

Not entirely sure why. Here is the stack trace:

INFO: Audio max auxilary sends: 4
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Mar 23, 2016 12:36:35 AM com.jme3.app.Application handleError 
SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
java.lang.NoClassDefFoundError: com/jme3/app/state/BaseAppState
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at com.simsilica.lemur.GuiGlobals.<init>(GuiGlobals.java:145)
at com.simsilica.lemur.GuiGlobals.initialize(GuiGlobals.java:115)
at states.Main.simpleInitApp(Main.java:34)
at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:226)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:130)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:207)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ClassNotFoundException: com.jme3.app.state.BaseAppState
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 19 more

I’ll create an Issue on Lemur’s Github if it is deemed issue worthy and not something I’m doing.

Something is odd with your setup. Lemur has its own BaseAppState class but JME 3.1+ has a new BaseAppState class and that’s the one that seems to be missing.

…but nothing in Lemur uses that class so something else must be up.

Edit: wait… I guess the AnimationState might use JME’s.

Anyway, it indicates that you are running an older JME. Maybe the ancient 3.0?

Okay, I’ll admit. Running jme 3.0 right now.

Updating to 3.1. Hold on to your hats everyone…

Okay, so, jme 3.1 is awesome.

Also, whenever I use Lemur, an error

java.lang.NoClassDefFoundError: org/apache/log4j/Level

I solved a similar problem by with adding the slf4j jar. My question really is why aren’t these jars listed with lemur jar, or is there something I’m missing

Forgive me. I’m stoopid. It says clearly says under the dependencies section.

:slight_smile: Glad you got it working.