Hi guys
So I recently updated my jmonkeyengine source code, and thus JARs, to the latest nightly. I compiled JME3, and added a reference to the compiled files on my project. It compiles fine, but when I run, I get this:
[java]
SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
java.lang.UnsatisfiedLinkError: com.jme3.bullet.PhysicsSpace.createPhysicsSpace(FFFFFFIZ)J
at com.jme3.bullet.PhysicsSpace.createPhysicsSpace(Native Method)
at com.jme3.bullet.PhysicsSpace.create(PhysicsSpace.java:146)
at com.jme3.bullet.PhysicsSpace.<init>(PhysicsSpace.java:138)
at com.jme3.bullet.BulletAppState.startPhysics(BulletAppState.java:131)
at com.jme3.bullet.BulletAppState.stateAttached(BulletAppState.java:158)
at com.jme3.app.state.AppStateManager.attach(AppStateManager.java:127)
at cs.game.CenterSpace.simpleInitApp(CenterSpace.java:56)
at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:228)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:129)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:205)
at java.lang.Thread.run(Thread.java:722)[/java]
My Google-fu tells me that an UnsatisfiedLinkError is thrown when a native method is not found. So, I’m thinking its Native Bullet. Any ideas? What do I need to do to get native bullet working? When I last worked on JME3, probably late last year, it worked fine. So I dont think its a configuration change my side. I loaded up an old project that was definitely working as of December last year, it has the same issue.
Looks like you’re combining the wrong libraries and natives, I cannot reproduce this.
Thanks, after a bit of fiddling it is working again. Back to non native Bullet. Not sure how I managed to do that, never done it before.
Yes, this is an old thread, but I just had this exact same exception.
java.lang.UnsatisfiedLinkError: com.jme3.bullet.PhysicsSpace.createPhysicsSpace(FFFFFFIZ)J
To go back to native bullet, put a watch for this code at your IDE: Thread.currentThread().getContextClassLoader()
and check at several spots of your application initialization.
When that object gets the nativeLibraries
filled with the required ones, you are good to initialize bullet.
In my case, I was trying to initialize bullet before simpleInitApp()
. Your code clearly initialized it in the right place already, so anyway, the tip above is the clue we need if UnsatisfiedLinkError for natives happen again.