Help with native bullet

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.

@ancalagon

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.

1 Like