[SOLVED] UnsatisfiedLinkError after switching to Minie physics

The SDK 3.3 is ok to use and it contains Gradle project template for JME games as well :slight_smile: I would recommend SDK 3.3 over 3.2, especially if one desires to use the engine version from SDK. The animation change in JME 3.3 otherwise causes unnecessary code migration later…

1 Like

Ya, I figured theres no reason to delay upgrading, might as well now before the project gets too mature

The project is still 90% on paper, so I’m more than glad to get all the kinks worked out now while theres only 35 files in the whole project

Either 3.3 requires less jars or there’s missing depends. Not sure exactly but this is what I drag in with a default project 3.2.

It looks like you have the right jars so it should drag in what it needed.

Interesting, Well I didn’t change the number of jars, I replaced all the 3.2 ones in my projects classpath with 3.3 ones, the only things I completely removed were bullet and friends, which got replaced by Minie. I’ll run another test without physics, and see if the classpath is still intact (I have been changing A LOT of things trying to solve this)

Also, pretty much all of these libraries were added by me, so I could have missed something when I added them to the classpath

So, as an update, I tried to use gradle, hoping it would fix this, but after installing the gradle support plugin in the IDE, restarting the IDE, then tried using this template, but the IDE is just stuck on Loading BasicGame-On-Gradle. I tried making a gradle project directly from the IDE, and copying the build.gradle file, and I get the same results, it gets stuck at Loading TestGradle (some random name to test it). And oddly enough, I can’t cancel it once it gets going. I thought it was my firewall blocking some obscure utility, so I disabled it with no results

The first run of a gradle project requires it to download gradle, which can take quite some time.

On the lower right of the output window you should see the running process. If you click it you should see it downloading gradle, followed by the jars you have as dependencies.

Not a few minutes but as long as 15-30 minutes or more depending on your connection.

That build file is missing jme assets folders.

You can add them by adding this to your build.gradle,

project(":assets") {
    apply plugin: "java"    
    buildDir = rootProject.file("build/assets")
    
    sourceSets {
        main {
            resources {
                srcDir '.'
                exclude ('**/*.j3odata','**/*.mesh','**/*.skeleton',\
                        '**/*.mesh.xml','**/*.skeleton.xml','**/*.scene',\
                        '**/*.material','**/*.obj','**/*.mtl','**/*.3ds',\
                        '**/*.dae','**/*.blend','**/*.blend*[0-9]','**/*.bin',\
                        '**/*.gltf')
            }
        }
    }
}

task (createDirs).doLast {
    def dirs = [
        file("./assets/Interface"),
        file("./assets/MatDefs"),
        file("./assets/Materials"),
        file("./assets/Models"),
        file("./assets/Scenes"),
        file("./assets/Shaders"),
        file("./assets/Sounds"),
        file("./assets/Textures"),
    ]

    dirs.each {
        if( !it.exists() ) {
            println "Creating " + it
            it.mkdirs()
        }
        if( it.listFiles().length == 0 ) {
            def stub = new File(it, 'removeme.txt')
            println "Creating stub file to allow git checkin, file:$stub"
            stub.text = "Remove me when there are files here."
        }
    }
}

add this to your dependencies,

runtimeOnly project(':assets')

edit the settings.gradle file and add this line,

include 'assets'

If you see tasks listed when right clicking the project, just run the createDirs task and your set.

If its not listed, select the build.gradle file, in the navigator at bottom left, select the createDirs task if its listed.

If not there, right select the project, add a new task named createDirs and run it.

ya, can confirm it took about 35 minutes to complete the BasicGame-On-Gradle (I let it sit), but now I have to wait for that test project I made to finish loading

Thank you very much for that, I’m totally new to gradle. Give me about a few minutes and I’ll try that

Steep learning curve, but if you step back spend two weeks learning it, it will change your coding life for the better.

https://docs.gradle.org/current/userguide/userguide.html

1 Like

My friend I love me a good challenge, that’s why I decided to make my first game after years of backend programming. I’ve had my fair share of headaches with gradle, but I’m determined not to let this project hit my project graveyard, so if gradle is what has to be then so be it

Did you get it working?

Waiting for the new gradle project to run. It seems to take a while to run ‘Executing Gradle Task(s): Run Single’. I’m gonna run a basic test first to make sure a basic application will run, then I’ll try to run my actual test

Gradle has been ‘running’ for about 15 minutes with no progress. It just shows the bar at the bottom that says its running, no window openning up. Is gradle usually this slow to run projects or should I kill it?

Here is the gradle output for run:

Executing: gradle :run
Arguments: [-PcmdLineArgs=, -PjvmLineArgs=, -c, C:\Users\Jasmathan\Projects\VastGradle\settings.gradle]

> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE

> Task :run
Listening for transport dt_socket at address: 5005

It seems that it is waiting for this ‘transport dt_socket at address: 5005’. I have no idea what that is, and a glance at the gradle build file doesn’t show anything like that

I have never seen that myself.

Try clean and build, will probably do same thing, just curious.

Already did that, same result