Object id must be greater than zero?

Hi, so I’m brand new to JMonkey, and I decided to go through the tutorials to familiarize myself with the software.
My problem is, I tried doing the very first tutorial I get an “UncaughtException: Object id must be greater than zero”
dialogue box that pops up whenever I try to run the code. I’ve typed, re-typed, and even copy/pasted the code straight
from the tutorial, but I keep getting the same error. I’m using an older computer at the moment that runs Windows XP (still),
and has an ATI Radeon 9550 graphics card. Also, it has no internet connection, which is why I haven’t posted the code (it’s the
first tutorial), or the stack trace (I don’t have it on me, but I can get it if necessary). The program does compile, but when it tries
to run, it gives me the error message and closes. Any help would be appreciated.

Do you have the latest drivers installed?
This sound very weird really

They should be (for the most part), again, old computer with no internet, so
keeping up with drivers is a bit of a chore. Plus some of the companies don’t even support the hardware it uses anymore.

Can you post the entire log?

I have similar set-up and I’m getting the same error. Sorry to bump this topic, but I’ve been trying to find a game engine that fit best and I want to if jMonkey is any better than Unity 5, BGE, or libGDX.

    run:
May 16, 2015 3:54:04 PM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.0.10
May 16, 2015 3:54:04 PM com.jme3.system.Natives extractNativeLibs
INFO: Extraction Directory: C:\Documents and Settings\JORDAN & CHRISTOPHER\My Documents\Dropbox\NewProjects\HelloWorld
May 16, 2015 3:54:06 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Lwjgl 2.9.0 context running on thread LWJGL Renderer Thread
May 16, 2015 3:54:06 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Adapter: ati2dvag
May 16, 2015 3:54:06 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Driver Version: 6.14.10.6626
May 16, 2015 3:54:06 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Vendor: ATI Technologies Inc.
May 16, 2015 3:54:06 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: OpenGL Version: 2.0.5947 WinXP Release
May 16, 2015 3:54:06 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Renderer: RADEON XPRESS 200 Series x86/SSE2
May 16, 2015 3:54:06 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: GLSL Ver: 1.10
May 16, 2015 3:54:06 PM com.jme3.renderer.lwjgl.LwjglRenderer initialize
WARNING: Your graphics card does not support non-power-of-2 textures. Some features might not work.
May 16, 2015 3:54:07 PM com.jme3.asset.AssetConfig loadText
WARNING: Cannot find loader com.jme3.scene.plugins.blender.BlenderModelLoader
May 16, 2015 3:54:09 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio Device: OpenAL Soft
May 16, 2015 3:54:09 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio Vendor: OpenAL Community
May 16, 2015 3:54:09 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio Renderer: OpenAL Soft
May 16, 2015 3:54:09 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio Version: 1.1 ALSOFT 1.15.1
May 16, 2015 3:54:09 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: AudioRenderer supports 64 channels
May 16, 2015 3:54:09 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio effect extension version: 1.0
May 16, 2015 3:54:09 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio max auxilary sends: 4
May 16, 2015 3:54:10 PM com.jme3.app.Application handleError
SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
java.lang.IllegalArgumentException: object id must be greater than zero
    at com.jme3.util.NativeObjectManager.registerObject(NativeObjectManager.java:104)
    at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderData(LwjglRenderer.java:1091)
    at com.jme3.renderer.lwjgl.LwjglRenderer.setShader(LwjglRenderer.java:1111)
    at com.jme3.material.Material.render(Material.java:1116)
    at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:523)
    at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:322)
    at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:374)
    at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:763)
    at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:719)
    at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:983)
    at com.jme3.renderer.RenderManager.render(RenderManager.java:1029)
    at com.jme3.app.SimpleApplication.update(SimpleApplication.java:252)
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:151)
    at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:185)
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:228)
    at java.lang.Thread.run(Thread.java:744)

BUILD SUCCESSFUL (total time: 27 seconds)

…also on the first tutorial? Can you post your code?

I getting the error when I run the default project. Thanks for the quick reply, :smiley:

package mygame;

import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;

/**
 * test
 * @author normenhansen
 */
public class Main extends SimpleApplication {

    public static void main(String[] args) {
        Main app = new Main();
        app.start();
    }

    @Override
    public void simpleInitApp() {
        Box b = new Box(1, 1, 1);
        Geometry geom = new Geometry("Box", b);

        Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
        mat.setColor("Color", ColorRGBA.Blue);
        geom.setMaterial(mat);

        rootNode.attachChild(geom);
    }

    @Override
    public void simpleUpdate(float tpf) {
        //TODO: add update code
    }

    @Override
    public void simpleRender(RenderManager rm) {
        //TODO: add render code
    }
}

Well, as far as I know, I worked with JME in an old PC, and it was always warning that my graphics card could not work in the future. So, maybe it is unsupported?? I don’t know. It is really a weird bug…

What part of the is causing it and what does the log mean exactly by “Object I’d must be greater than zero”?

Well, if is not greater than zero, it means it’s -1 or even less. Most applications set a -1 value when something is wrong. So yeah: the JME is giving that id to prevent the app from starting. Normally, these are issues with drivers and/or incompatible graphics cards. Can you give us the name and specs of your graphics card?

You can try making sure your display drivers are up to date but it looks like that card only barely supports the level of OpenGL that JME requires… and ATI cards are notoriously problematic anyway. Especially the old ones.

I have an ATI Radeon Xpress 200 running OpenGL 2.0. I updated the drivers last week hopeing Minecraft 1.8, Lightworks, libGDX, and Shotcut would work. But it turns out OpenGL 2.0 does not support FBO.

@Ev1lblow, Thank you for the explanation.