Trouble building HelloCollision
bbarker opened this issue · 6 comments
See discussion for the issue on the JME forums. The Java example works with Gradle:
brandon@brandon-750-170se:/media/brandon/portadrive/projects/HelloCollision-on-Gradle$ gradle build
:compileJava
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-core/3.1.0-stable/jme3-core-3.1.0-stable.pom
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-bullet/3.1.0-stable/jme3-bullet-3.1.0-stable.pom
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-bullet-native/3.1.0-stable/jme3-bullet-native-3.1.0-stable.pom
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-desktop/3.1.0-stable/jme3-desktop-3.1.0-stable.pom
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-jogg/3.1.0-stable/jme3-jogg-3.1.0-stable.pom
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-lwjgl/3.1.0-stable/jme3-lwjgl-3.1.0-stable.pom
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-plugins/3.1.0-stable/jme3-plugins-3.1.0-stable.pom
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-terrain/3.1.0-stable/jme3-terrain-3.1.0-stable.pom
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-core/3.1.0-stable/jme3-core-3.1.0-stable.jar
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-bullet/3.1.0-stable/jme3-bullet-3.1.0-stable.jar
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-bullet-native/3.1.0-stable/jme3-bullet-native-3.1.0-stable.jar
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-desktop/3.1.0-stable/jme3-desktop-3.1.0-stable.jar
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-jogg/3.1.0-stable/jme3-jogg-3.1.0-stable.jar
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-lwjgl/3.1.0-stable/jme3-lwjgl-3.1.0-stable.jar
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-plugins/3.1.0-stable/jme3-plugins-3.1.0-stable.jar
Download https://jcenter.bintray.com/org/jmonkeyengine/jme3-terrain/3.1.0-stable/jme3-terrain-3.1.0-stable.jar
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build
BUILD SUCCESSFUL
Total time: 14.239 secs
And it runs using:
gradle -PmainClass=jme3test.helloworld.HelloCollision execute
A very odd workaround that I haven't been able to use so far to fix this properly: if I run the gradle example on the same system, the run the example in SBT, it works! I need to look at differences between ~/.ivy2/cache/org.jmonkeyengine
on two different systems, but the top-level directory structure looks the same:
$ ls -1 ~/.ivy2/cache/org.jmonkeyengine
jme3-blender
jme3-bullet
jme3-bullet-native
jme3-core
jme3-desktop
jme3-effects
jme3-examples
jme3-jbullet
jme3-jogg
jme3-jogl
jme3-lwjgl
jme3-networking
jme3-niftygui
jme3-plugins
jme3-terrain
md5sums on working system:
$ find ~/.ivy2/cache/org.jmonkeyengine/ -name '*.jar' | xargs md5sum
56a0f612667658eed0f6848e4fe38506 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-core/jars/jme3-core-3.1.0-stable.jar
233e9d8b5738b6a01a08c95263d8e26c /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-core/srcs/jme3-core-3.1.0-stable-sources.jar
a3587616adb4680864c40f5bc14f8f95 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-examples/jars/jme3-examples-3.1.0-stable.jar
a9f1308bc2fbcbbd861fe2a91b1dd362 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-examples/srcs/jme3-examples-3.1.0-stable-sources.jar
907c48eae8f77ca9d7acdf3b3ae64154 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-niftygui/jars/jme3-niftygui-3.1.0-stable.jar
26826bba2aad7227b7af68f51a82b738 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-niftygui/srcs/jme3-niftygui-3.1.0-stable-sources.jar
d896fb4e2cf2f014a748c80c6d6e381d /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-blender/jars/jme3-blender-3.1.0-stable.jar
1b3721891734304bfb32198bb8f39701 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-blender/srcs/jme3-blender-3.1.0-stable-sources.jar
c4b53a940dd4aeb202c1a11cd2d96def /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-desktop/jars/jme3-desktop-3.1.0-stable.jar
83ce9615c80b2231b91436591115ef84 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-desktop/srcs/jme3-desktop-3.1.0-stable-sources.jar
98a234864d16d35dafdcf9d2661db50e /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-effects/jars/jme3-effects-3.1.0-stable.jar
32681f74845f67829b35fcac9a797a68 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-effects/srcs/jme3-effects-3.1.0-stable-sources.jar
72d7b2546ec3d2272bc036aa805fc5c1 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-jogg/jars/jme3-jogg-3.1.0-stable.jar
56f575e9a32f80d770b8d1cba8c6b373 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-jogg/srcs/jme3-jogg-3.1.0-stable-sources.jar
9ce70a737c00150b6dbfa1e99b29062f /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-jogl/jars/jme3-jogl-3.1.0-stable.jar
8a08bd0b96823ffad68f0f4a3a75b1ac /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-jogl/srcs/jme3-jogl-3.1.0-stable-sources.jar
8b2446b100a1f3f591d838501f2102d4 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-networking/jars/jme3-networking-3.1.0-stable.jar
c928ad8125c4bc34c3e02105f6016c3d /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-networking/srcs/jme3-networking-3.1.0-stable-sources.jar
f02d07646edbbaf85ba85232b06f9759 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-lwjgl/jars/jme3-lwjgl-3.1.0-stable.jar
e66b5230aee9e3d43576e6a94d13e2ff /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-lwjgl/srcs/jme3-lwjgl-3.1.0-stable-sources.jar
f4b981957dea7613d3a563b26f3fa68b /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-terrain/jars/jme3-terrain-3.1.0-stable.jar
0c49d34989e2476f9fd379f4e9c58318 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-terrain/srcs/jme3-terrain-3.1.0-stable-sources.jar
983a8ba238d46299a7ac0742caf12ffd /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-plugins/jars/jme3-plugins-3.1.0-stable.jar
6a62975b2d38d2a2be6a1522e681d882 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-plugins/srcs/jme3-plugins-3.1.0-stable-sources.jar
0308932f57c88fe015d9b8e045d83cc0 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-bullet/jars/jme3-bullet-3.1.0-stable.jar
e04435c278756143378f49a8c313aa7e /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-bullet/srcs/jme3-bullet-3.1.0-stable-sources.jar
83bb67dc6363447a64d47754df26964e /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-bullet-native/jars/jme3-bullet-native-3.1.0-stable.jar
8663ed16f062efce3901ef76eecaf66d /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-bullet-native/srcs/jme3-bullet-native-3.1.0-stable-sources.jar
2b89968df541327a891b6c49a17292c2 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-jbullet/jars/jme3-jbullet-3.1.0-stable.jar
c6cf63666f31e5c1b4ef930853a7654d /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-jbullet/srcs/jme3-jbullet-3.1.0-stable-sources.jar
md5sums on the bad system are all present except lwjgl3, which I added only as a test:
$ find ~/.ivy2/cache/org.jmonkeyengine/ -name '*.jar' | xargs md5sum
9ce70a737c00150b6dbfa1e99b29062f /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-jogl/jars/jme3-jogl-3.1.0-stable.jar
2b89968df541327a891b6c49a17292c2 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-jbullet/jars/jme3-jbullet-3.1.0-stable.jar
98a234864d16d35dafdcf9d2661db50e /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-effects/jars/jme3-effects-3.1.0-stable.jar
a3587616adb4680864c40f5bc14f8f95 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-examples/jars/jme3-examples-3.1.0-stable.jar
f4b981957dea7613d3a563b26f3fa68b /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-terrain/jars/jme3-terrain-3.1.0-stable.jar
907c48eae8f77ca9d7acdf3b3ae64154 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-niftygui/jars/jme3-niftygui-3.1.0-stable.jar
56a0f612667658eed0f6848e4fe38506 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-core/jars/jme3-core-3.1.0-stable.jar
983a8ba238d46299a7ac0742caf12ffd /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-plugins/jars/jme3-plugins-3.1.0-stable.jar
2aeff383790b1841cc84341215d590cc /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-lwjgl3/jars/jme3-lwjgl3-3.1.0-stable.jar
8b2446b100a1f3f591d838501f2102d4 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-networking/jars/jme3-networking-3.1.0-stable.jar
d896fb4e2cf2f014a748c80c6d6e381d /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-blender/jars/jme3-blender-3.1.0-stable.jar
0308932f57c88fe015d9b8e045d83cc0 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-bullet/jars/jme3-bullet-3.1.0-stable.jar
72d7b2546ec3d2272bc036aa805fc5c1 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-jogg/jars/jme3-jogg-3.1.0-stable.jar
c4b53a940dd4aeb202c1a11cd2d96def /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-desktop/jars/jme3-desktop-3.1.0-stable.jar
f02d07646edbbaf85ba85232b06f9759 /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-lwjgl/jars/jme3-lwjgl-3.1.0-stable.jar
83bb67dc6363447a64d47754df26964e /home/brandon/.ivy2/cache/org.jmonkeyengine/jme3-bullet-native/jars/jme3-bullet-native-3.1.0-stable.jar
After doing a clean, trying out other versions of the Scala compiler, and switching back (and maybe other things along the way), it is now broken again with a different NoClassDefFoundError
:
[error] Oct 08, 2017 6:51:18 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
[error] WARNING: Pausing audio device not supported.
[error] Oct 08, 2017 6:51:18 PM com.jme3.app.LegacyApplication handleError
[error] SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
[error] java.lang.NoClassDefFoundError: com/bulletphysics/collision/broadphase/OverlapFilterCallback
[error] at com.jme3.bullet.BulletAppState.startPhysics(BulletAppState.java:164)
[error] at com.jme3.bullet.BulletAppState.stateAttached(BulletAppState.java:211)
[error] at com.jme3.app.state.AppStateManager.attach(AppStateManager.java:133)
[error] at tutorial.HelloCollision.simpleInitApp(HelloCollision.scala:65)
[error] at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:220)
[error] at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:130)
[error] at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:211)
[error] at java.lang.Thread.run(Thread.java:748)
[error] Caused by: java.lang.ClassNotFoundException: com.bulletphysics.collision.broadphase.OverlapFilterCallback
[error] at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[error] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[error] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
[error] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[error] ... 8 more
[error]
The bad news is, this time, running the gradle project does not seem to act as a workaround.
Hey, good news, it seems this is fixed now when using the latest JMonkey version.
Here's the updated list of libs with which I was using and was finally able to run the Physics and Collision examples:
lazy val jmonkeyDeps = Seq(
"org.jmonkeyengine" % "jme3-bullet" % "3.2.1-stable" exclude("org.jmonkeyengine", "jme3-testdata") exclude("stack-alloc", "stack-alloc") exclude("jbullet", "jbullet"),
"org.jmonkeyengine" % "jme3-bullet-native" % "3.2.1-stable" exclude("org.jmonkeyengine", "jme3-testdata") exclude("stack-alloc", "stack-alloc") exclude("jbullet", "jbullet"),
"org.jmonkeyengine" % "jme3-core" % "3.2.1-stable" exclude("org.jmonkeyengine", "jme3-testdata") exclude("stack-alloc", "stack-alloc") exclude("jbullet", "jbullet"),
"org.jmonkeyengine" % "jme3-desktop" % "3.2.1-stable" exclude("org.jmonkeyengine", "jme3-testdata") exclude("stack-alloc", "stack-alloc") exclude("jbullet", "jbullet"),
"org.jmonkeyengine" % "jme3-examples" % "3.2.1-stable" exclude("org.jmonkeyengine", "jme3-testdata") exclude("stack-alloc", "stack-alloc") exclude("jbullet", "jbullet"),
"org.jmonkeyengine" % "jme3-lwjgl" % "3.2.1-stable" exclude("org.jmonkeyengine", "jme3-testdata") exclude("stack-alloc", "stack-alloc") exclude("jbullet", "jbullet"),
"org.jmonkeyengine" % "jme3-terrain" % "3.2.1-stable" exclude("org.jmonkeyengine", "jme3-testdata") exclude("stack-alloc", "stack-alloc") exclude("jbullet", "jbullet"),
"org.lwjgl.lwjgl" % "lwjgl_util" % "2.9.3"
)
Thanks for making this repo, it helped me setup JME with scala much faster than doing it from scratch. :)
Oh, not really sure btw but it may be needed to add this repo to the list (I had trouble getting JME 3.2.1 from the current repos in config): http://repo.spring.io/plugins-release
Also, some examples may need some correction due to changes in 3.2. See for example the comments here https://wiki.jmonkeyengine.org/jme3/beginner/hello_collision.html regarding >3.2