[SOLVED] Version error loading .j3o file

Hi everyone

I’m very much a beginner round here.

I’m hitting this error loading a .j3o file:

May 09, 2024 9:28:12 AM com.jme3.export.binary.BinaryImporter load
SEVERE: An error occurred while loading jME binary object
java.io.IOException: The binary file is of newer version than expected! 3 > 2
        at com.jme3.export.binary.BinaryImporter.load(BinaryImporter.java:150)

(masses of Java backtrace)

May 09, 2024 9:28:12 AM com.jme3.app.LegacyApplication handleError
SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
com.jme3.asset.AssetLoadException: Error occurred while loading asset "model-prototypes/male.j3o" using BinaryLoader
        at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:280)
        at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:388)

What I’m understanding from this is

  1. The asset manager found my file, but
  2. It was unable to load the file, because some library I’m using is out of date

My file was created by

  1. Creating the most default model I could using the MakeHuman MPFB plugin for Blender;
  2. saving that model from Blender with skeleton and textures as a .glb file;
  3. loading that model into Stephen Gold’s Maud character editor, version 1.0.0-beta2;
  4. saving it from Maud as .j3o

I’m using @ertugrulcetin’s jme-clj version “0.1.13” (current master, as of today), and this in turn depends on jME version “3.3.2-stable”. Is there a version change in .j3o files between jME 3.3.2 and 3.6.1?

As a related question, I tried rebuilding jme-clj to use jME 3.6.1-stable, but got this:

Could not find artifact org.jmonkeyengine:jme3-jogl:jar:3.6.1-stable in central (https://repo1.maven.org/maven2/)
Could not find artifact org.jmonkeyengine:jme3-jogl:jar:3.6.1-stable in clojars (https://repo.clojars.org/)
Could not find artifact org.jmonkeyengine:jme3-jogl:jar:3.6.1-stable in jcenter (https://jcenter.bintray.com/)
Could not find artifact org.jmonkeyengine:lwjgl-platform:jar:2.9.5 in central (https://repo1.maven.org/maven2/)
Could not find artifact org.jmonkeyengine:lwjgl-platform:jar:2.9.5 in clojars (https://repo.clojars.org/)
Could not find artifact org.jmonkeyengine:lwjgl-platform:jar:2.9.5 in jcenter (https://jcenter.bintray.com/)
Could not find artifact org.jmonkeyengine:jme3-blender:jar:3.6.1-stable in central (https://repo1.maven.org/maven2/)
Could not find artifact org.jmonkeyengine:jme3-blender:jar:3.6.1-stable in clojars (https://repo.clojars.org/)
Could not find artifact org.jmonkeyengine:jme3-blender:jar:3.6.1-stable in jcenter (https://jcenter.bintray.com/)

lwjgl-platform 2.9.5 does appear to exist in mvnrepository, but attempting to fetch it results in a 403 error:

Could not transfer artifact org.jmonkeyengine:lwjgl-platform:jar:2.9.5 from/to mvnrepository (https://mvnrepository.com/): authorization failed for https://mvnrepository.com/org/jmonkeyengine/lwjgl-platform/2.9.5/lwjgl-platform-2.9.5.jar, status: 403 Forbidden

Where is there a Maven repository from which I can fetch current jMonkeyEngine artefacts?

1 Like

This indicates the binary was created with JME 3.7 or later. In order to load version 3 J3Os, you’ll need JME 3.7 (or later) libraries. Note that JME 3.7 is currently in test; 3.7.0-stable hasn’t been released yet.

Where is there a Maven repository from which I can fetch current jMonkeyEngine artefacts?

JME artifacts (including test releases) are available from the Maven Central repository. In Gradle specify

repositories {
    mavenCentral()
}

In Maven specify:

<repositories>
    <repository>
      <id>mvnrepository</id>
      <url>https://repo1.maven.org/maven2/</url>
    </repository>
</repositories>
1 Like

Thank you very much!

1 Like

Can confirm that downgrading Maud to jME 3.6.1-stable resolves the binary file is of newer version than expected! problem.

Can confirm that explicitly adding Maven Central as a repository fixes the jar resolution issues.

1 Like