[MAJOR PROBLEM] jME2Physics on 64 bit Mac OS X (Mac Pro) is NO GO

Okay, I'm having serious issues with jME2Physics. To be more precise, I have issues with ODEJava.



There is no native library available that works on a 64bit Mac OS X system. So far, I have had no luck in getting to compile ODEJava by hand with 64bit Mac support. I'm running the most current Java SE 1.6 (64bit) on my mac.



The big problem for jME and jMEPhysics here is that NO game or app that uses physics will run on a modern 64bit Mac! I hope that some one more able than me can pick this up and help me (and the rest of us Mac users) out.



Here's what happens when I run a sample project that uses jME2Physics.


Jul 21, 2009 1:34:08 PM com.jmex.physics.PhysicsSpace scanAvailableImplementations
INFO: Physics implementation 'com.jmex.physics.impl.physx.PhysXSpace$PhysXFactory' not present.
Jul 21, 2009 1:34:08 PM org.odejava.Odejava <clinit>
SEVERE: Native code library (32 and 64 bit library) failed to load: java.lang.UnsatisfiedLinkError: /Users/kirk/droids/jME2Physics/impl/ode/lib/libodejava.jnilib:  no suitable image found.  Did find:  /Users/kirk/droids/jME2Physics/impl/ode/lib/libodejava.jnilib: no matching architecture in universal wrapper
java.lang.UnsatisfiedLinkError: /Users/kirk/droids/jME2Physics/impl/ode/lib/libodejava.jnilib:  no suitable image found.  Did find:  /Users/kirk/droids/jME2Physics/impl/ode/lib/libodejava.jnilib: no matching architecture in universal wrapper
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1881)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1798)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1047)
        at org.odejava.Odejava.<clinit>(Odejava.java:88)
        at com.jmex.physics.impl.ode.OdePhysicsSpace$OdeFactory.getImplementationVersion(OdePhysicsSpace.java:188)
        at com.jmex.physics.PhysicsSpace.scanAvailableImplementations(PhysicsSpace.java:371)
        at com.jmex.physics.PhysicsSpace.create(PhysicsSpace.java:340)
        at com.jmex.physics.util.SimplePhysicsGame.initSystem(SimplePhysicsGame.java:91)
        at com.jme.app.BaseGame.start(BaseGame.java:70)
        at jmesample.Main.main(Main.java:26)
Jul 21, 2009 1:34:08 PM com.jmex.physics.PhysicsSpace scanAvailableImplementations
WARNING: Failed to use physics implementation 'com.jmex.physics.impl.ode.OdePhysicsSpace$OdeFactory' due to Exception/Error: java.lang.UnsupportedOperationException: Failed to load natives
java.lang.UnsupportedOperationException: Failed to load natives
        at org.odejava.Odejava.init(Odejava.java:125)
        at com.jmex.physics.impl.ode.OdePhysicsSpace$OdeFactory.getImplementationVersion(OdePhysicsSpace.java:188)
        at com.jmex.physics.PhysicsSpace.scanAvailableImplementations(PhysicsSpace.java:371)
        at com.jmex.physics.PhysicsSpace.create(PhysicsSpace.java:340)
        at com.jmex.physics.util.SimplePhysicsGame.initSystem(SimplePhysicsGame.java:91)
        at com.jme.app.BaseGame.start(BaseGame.java:70)
        at jmesample.Main.main(Main.java:26)
Caused by: java.lang.UnsatisfiedLinkError: /Users/kirk/droids/jME2Physics/impl/ode/lib/libodejava.jnilib:  no suitable image found.  Did find:  /Users/kirk/droids/jME2Physics/impl/ode/lib/libodejava.jnilib: no matching architecture in universal wrapper
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1881)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1798)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1047)
        at org.odejava.Odejava.<clinit>(Odejava.java:88)
        ... 6 more
Jul 21, 2009 1:34:08 PM com.jmex.physics.PhysicsSpace scanAvailableImplementations
INFO: Physics implementation 'com.jmex.physics.impl.joode.JoodePhysicsSpace$JoodeFactory' not present.
Jul 21, 2009 1:34:08 PM com.jmex.physics.PhysicsSpace scanAvailableImplementations
INFO: Physics implementation 'com.jmex.physics.impl.jbullet.JBulletPhysicsSpace$JBulletFactory' not present.
Jul 21, 2009 1:34:08 PM class jmesample.Main start()
SEVERE: Exception in game loop
java.lang.IllegalStateException: No physics implementation was registered nor found!
        at com.jmex.physics.PhysicsSpace.create(PhysicsSpace.java:348)
        at com.jmex.physics.util.SimplePhysicsGame.initSystem(SimplePhysicsGame.java:91)
        at com.jme.app.BaseGame.start(BaseGame.java:70)
        at jmesample.Main.main(Main.java:26)



Does anyone have 64bit Mac native libs that will make jME2Physics work on a modern Mac? As I stated before, this is a huge problem for running physics apps on any 64bit Mac.

I have been trying to compile ODEJava myself, but with no luck at all. I have compiled ODE itself, but I'm not sure it turned out to be a 64bit library. The supplied script with ODEJava and the different topics on this forum have been no help at all to get 64bit natives ready.

Please help! (Not the desperation in my voice ;))

worksforme



(That always annoys the testers…)



After issues with physics on a different box under jme1, I ended up just directly using a physics space (JOODE, I think). Make sure that all the libs line up, and its fine.



Just try directly using the different physics bindings available. I think there are more in jme2 than when I was playing with jme1.



and… make sure you have libraries set up.



This all worked straight away when I moved dev to my brand new 13" macbook pro a few months ago.

Haha… so much for that.



Upgraded to snow leopard… and now I have this issue. I don't know why. I'll have to add in the mapping for the other physics implementations now.



And it was ODE that I was using… and joode isn't in jme2's physics bindings.



Have you solved this yet? If so, how? And if not, do you want me to let you know if I find a way around it (or to fix it)?

They need to be compiled, and it’s a HUGE PITA. If you manage to get it done, please, PLEASE post it for others to test and we’ll make sure it goes in the repos with the rest of them.

I hit this problem too when I upgraded to Snow Leopard. I was able to solve it by following the instructions here:



http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard



that allow you to install 32-bit Java 1.5 under SL (which makes you wonder why Apple couldn’t just leave it in!). However, this isn’t a good long-term fix as any applications built this way won’t run on Macs that haven’t been similarly retrofitted (i.e., almost all Macs running SL).



A related question: SL provides a 32-bit Java 1.6, but I still had problems even with it set to default (using Java Preferences). Only returning to Java 1.5 made things work. Is that expected or am I doing something wrong? If things can be made to work with 32-bit 1.6, then maybe this whole problem could be averted.

Hmm… It really would be nice to get ODE working on a 64 bit mac… but the jme2 distribution includes a wrapper set and libraries for jbullet.

just designate the jbullet src folder as an actual source folder, add the libraries, and move onto the next **** problem that snow leopard has introduced.



–> Just clarifying, its a 2 minute job (once you reaslise that all libraries are already present). ODE != jmephysics.



I don't know how well it works… I'm onto the next bit that worked before I upgraded.

Exactly what ebola said!



Just wanted to say that if you go with JBullet, just remember not all the features the ODEJava implementation provides are available in the JBullet implementation, (no joint motors for some joints, bad / missing joint data, odd material handling, no surface motion, inconsistent addForce() results, etc.) but it'll definitely work anywhere Java does.  I'll be checking the updated JBullet branched code into the JMEPhysics trunk soon (hopefully later today) and it should be MUCH more solid than what's currently in there.



As far as the JBullet implementation goes . . . there's still a few bits missing, but if ugly works for you . . . it'll work.  And honestly, I haven't noticed that it's HIDEOUSLY slower than ODE.  And if you have questions about it . . . I'm your man.  :)  PM me if you want.



-Falken



-Falken