What happend to appState?

Just returned to code and trying to run my recently working game I received nice red poema:

AndroidRuntime: FATAL EXCEPTION: GLThread 18355
    Process: com.jme.Example, PID: 522
    java.lang.AbstractMethodError: abstract method "java.lang.String com.jme3.app.state.AppState.getId()"
        at com.jme3.app.state.AppStateManager.attach(AppStateManager.java:142)
        at com.jme.Citadel.Cytadela.simpleInitApp(Cytadela.java:369)
        at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:237)
        at com.jme3.app.AndroidHarnessFragment.initialize(AndroidHarnessFragment.java:556)
        at com.jme3.system.android.OGLESContext.onDrawFrame(OGLESContext.java:334)
        at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1571)
        at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)
E/com.jme3.app.AndroidHarnessFragment: SEVERE Exception thrown in Thread[GLThread 18355,5,main]
    java.lang.AbstractMethodError: abstract method "java.lang.String com.jme3.app.state.AppState.getId()"
        at com.jme3.app.state.AppStateManager.attach(AppStateManager.java:142)
        at com.jme.Citadel.Cytadela.simpleInitApp(Cytadela.java:369)
        at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:237)
        at com.jme3.app.AndroidHarnessFragment.initialize(AndroidHarnessFragment.java:556)
        at com.jme3.system.android.OGLESContext.onDrawFrame(OGLESContext.java:334)
        at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1571)
        at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)

In 369 line in my code I see:

    stateManager.attach(bulletAppState);

Were something changed since I have been off (± two weeks) ? Whats wrong ?

@pspeed added some method about exatly get by ID, not just class, so i assume its realted.

@pspeed any idea?

Maybe there is not everything up-to-date?

Do you use your own custom app state that implements AppState and doesn’t extend one of the standard BaseAppState or AbstractAppState?

Otherwise, maybe your version of JME bullet doesn’t match your version of JME.

Generally I am not using custom solutions to keep easy way to consult with community. However it happened on working ( till now ) code, so I am looking for simple answer, how to revert it to work.

Yes or no.

Edit: you can learn more about why that’s important here: AppState interface usage poll

Essentially, if you implement AppState directly instead of extending AbstractAppState then you have to take responsibility for every interface change. getId() was added to the interface. If you extend AbstractAppState then you won’t have this issue in the future.

If the problem is really to do with BulletAppState then you are mixing libraries from different JME versions somehow.

No

Then make sure you upgrade all of JME and not just some of JME.

as i see there were changes in cinematic / bullet / State packages (for appstates getId). 21 days ago.

So like @pspeed said, looks like you have one of them newer and others are in older version so Error appear.

edit:

you can easly find “old/new package” issue looking where you have missing changes from(+ part 2 too):

then you will know what package make issues for you.