How to set resources

Hi guys. I ran into a problem: whenever I run a code from beginner tutorial Tutorial (3) - Hello Assets. I get an error message: "Uncaught exception thrown in Thread[jME3 Main,5,main]
com.jme3.asset.AssetLoadException: No loader registered for type “mesh.xml”"

with following stacktrace:

окт 23, 2017 5:13:50 PM com.jme3.app.LegacyApplication handleError
SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
com.jme3.asset.AssetLoadException: No loader registered for type "mesh.xml"
	at com.jme3.asset.ImplHandler.aquireLoader(ImplHandler.java:199)
	at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:255)
	at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:373)
	at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:416)
	at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:420)
	at BollExpertDesktopView.simpleInitApp(BollExpertDesktopView.java:64)
	at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:220)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:130)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:211)
	at java.lang.Thread.run(Thread.java:745)

I build project through gradle in Android Studio. All dependencies are set:

...

project(":desktop") {
    apply plugin: "java"
    def jme3 = [v:'3.1.0-stable', g:'org.jmonkeyengine']
    dependencies {
        compile files('lib/jME3-testdata-3.0.0.20130526.jar')
        compile "${jme3.g}:jme3-core:${jme3.v}"
        runtime "${jme3.g}:jme3-desktop:${jme3.v}"
        runtime "${jme3.g}:jme3-lwjgl:${jme3.v}"
    }
}

...

what should I do?

I’m no expert on this matter, but your build.gradle looks really strange. What IDE(s) are you using? Did you type the build.gradle yourself or was it generated?

When I was using jME on Android, I used these for creating a repo:


Also, you should consider categorising your post. This makes it easier for other people to know what you want/need.

Mesh.xml might require jme3-plugins but keep in mind that you should only load game ready j3o files.

You can use the sdk to convert mesh xmls to j3os

with gradle everything is all right. Method loadModel() in AseertManager find file, but can`t find loader for type “mesh.xml”.

jme3-plugins contains loader for mesh.xml? how it works?

don’t load mesh.xml in program. read answer again.

but it is written in tutorial: loadModel(“Models/Ninja/Ninja.mesh.xml”) and nothing like Ninja.j3o in folder “Models/Ninja/”

Because the Tutorial is old, yeah. But Yeah, jme3 plugins but for more than a Tutorial you should use j3o

thanks for your answer)

There was only one part of tutorial that was out of date and it is unrelated to this question.

If this fixed your problem then the problem is not related to the tutorial you linked to. Where did you get the Android info from on dependencies?

I don`t use jme plugins, now I simply work with anothe models which has .j3o extention. android info? In the above part of build.gradle I use dependensies for desktop version

one more question, does the loadModel() method support the model from the Blender?

What did you use to get the names of the dependencies.

From the page you link to above,
https://jmonkeyengine.github.io/wiki/jme3/beginner/hello_asset.html#model-file-formats
from the javadocs,
http://javadoc.jmonkeyengine.org/com/jme3/asset/AssetManager.html#loadModel-com.jme3.asset.ModelKey-

Edit: Nehon also added GLTF support but I don’t know how to use it yet or even if you can load the files with loadModel(). On my list of things to learn still.

Rule 1: only use j3o files in loadModel()
Rule 2: when in doubt, see rule number 1.

If you want to use other models, then convert them in the SDK to j3o.

Otherwise, you saddle all of your users with the HUGE load times and HUGE extra resources required to read these other files. You might as well store your images as giant encoded text files while you are at it.

1 Like

thank for links.
All dependensies I get from maven repository:

allprojects {
      repositories {
            jcenter() 
            maven {
                  url 'http://dl.bintray.com/jmonkeyengine/org.jmonkeyengine' 
            }
      }
}

If do you mean this

Ok, that’s what I wanted. The maven wiki page already lists the dependencies.

•jme3-plugins - Loader plugins for OgreXML and jME-XML

To add to pspeed suggestion, you can also convert things without the SDK,

2 Likes

You say that like encoding images in XML would be a bad thing. :wink: