TestNiftyGUI not running on Moto G3 Android v5.1.1

I’ve been trying to get this to work for a very long time now and I’m sure there must be an obvious solution. I am trying to use Nifty in an Android JME application, and decided to get familiar with it by running the TestNiftyGUI code sample through Android Studio. Unfortunately I haven’t been able to get them to work and get the following errors. I’m also not certain what dependencies the sample code requires. The code I’ve including in this post is slightly different from the original due to my attempts to make it work but the errors are the same in any case once the full range of Nifty packages have been added to the project including:

eventbus.jar
jglfont-core.jar
jME3-android.jar
jME3-blender.jar
jME3-care.jar
jME3-jogg.jar
jME3-lwjgl.jar
jME3-lwjgl-natives.jar
jME3-niftygui.jar
jME3-plugins.jar
jME3-testdata.jar
lwjgl.jar
nifty.jar
nifty-default-controls.jar
nifty-default-controls-javadoc.jar
nifty-style-black.jar
xmlpull-xpp3.jar

Many thanks in advance.

Here are the errors:

09-19 02:02:26.425  22501-22549/com.openarbrowser.nifty E/com.jme3.app.AndroidHarness﹕ SEVERE Exception thrown in Thread[GLThread 3889,5,main]
    java.lang.NoSuchMethodError: No virtual method render(Lcom/jme3/renderer/RenderManager;)V in class Lcom/jme3/font/BitmapText; or its super classes (declaration of 'com.jme3.font.BitmapText' appears in /data/app/com.openarbrowser.nifty-1/base.apk)
            at com.jme3.niftygui.RenderDeviceJme.renderFont(RenderDeviceJme.java:250)
            at de.lessvoid.nifty.render.ScalingRenderDevice.renderFont(ScalingRenderDevice.java:108)
            at de.lessvoid.nifty.render.NiftyRenderEngineImpl.renderText(NiftyRenderEngineImpl.java:271)
            at de.lessvoid.nifty.elements.render.TextRenderer.renderLine(TextRenderer.java:291)
            at de.lessvoid.nifty.elements.render.TextRenderer.renderLines(TextRenderer.java:192)
            at de.lessvoid.nifty.elements.render.TextRenderer.render(TextRenderer.java:173)
            at de.lessvoid.nifty.elements.Element.renderElement(Element.java:627)
            at de.lessvoid.nifty.elements.Element.render(Element.java:605)
            at de.lessvoid.nifty.elements.Element.renderInternalChildElements(Element.java:644)
            at de.lessvoid.nifty.elements.Element.renderChildren(Element.java:637)
            at de.lessvoid.nifty.elements.Element.render(Element.java:615)
            at de.lessvoid.nifty.elements.Element.renderInternalChildElements(Element.java:644)
            at de.lessvoid.nifty.elements.Element.renderChildren(Element.java:637)
            at de.lessvoid.nifty.elements.Element.render(Element.java:606)
            at de.lessvoid.nifty.screen.Screen.renderLayers(Screen.java:313)
            at de.lessvoid.nifty.Nifty.render(Nifty.java:280)
            at com.jme3.niftygui.NiftyJmeDisplay.postQueue(NiftyJmeDisplay.java:169)
            at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:979)
            at com.jme3.renderer.RenderManager.render(RenderManager.java:1035)
            at com.jme3.app.SimpleApplication.update(SimpleApplication.java:252)
            at com.jme3.app.AndroidHarness.update(AndroidHarness.java:467)
            at com.jme3.system.android.OGLESContext.onDrawFrame(OGLESContext.java:349)
            at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1522)
            at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)
09-19 02:03:40.882  22501-22501/com.openarbrowser.nifty E/WindowManager﹕ android.view.WindowLeaked: Activity com.openarbrowser.nifty.NiftyActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{81988c0 V.E..... R....... 0,0-777,720} that was originally added here
            at android.view.ViewRootImpl.<init>(ViewRootImpl.java:375)
            at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:271)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
            at android.app.Dialog.show(Dialog.java:298)
            at com.jme3.app.AndroidHarness$1.run(AndroidHarness.java:331)
            at android.os.Handler.handleCallback(Handler.java:746)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5343)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
09-19 02:03:41.975  22501-23298/com.openarbrowser.nifty E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 3894
    Process: com.openarbrowser.nifty, PID: 22501
    java.lang.NoSuchMethodError: No virtual method render(Lcom/jme3/renderer/RenderManager;)V in class Lcom/jme3/font/BitmapText; or its super classes (declaration of 'com.jme3.font.BitmapText' appears in /data/app/com.openarbrowser.nifty-1/base.apk)
            at com.jme3.niftygui.RenderDeviceJme.renderFont(RenderDeviceJme.java:250)
            at de.lessvoid.nifty.render.ScalingRenderDevice.renderFont(ScalingRenderDevice.java:108)
            at de.lessvoid.nifty.render.NiftyRenderEngineImpl.renderText(NiftyRenderEngineImpl.java:271)
            at de.lessvoid.nifty.elements.render.TextRenderer.renderLine(TextRenderer.java:291)
            at de.lessvoid.nifty.elements.render.TextRenderer.renderLines(TextRenderer.java:192)
            at de.lessvoid.nifty.elements.render.TextRenderer.render(TextRenderer.java:173)
            at de.lessvoid.nifty.elements.Element.renderElement(Element.java:627)
            at de.lessvoid.nifty.elements.Element.render(Element.java:605)
            at de.lessvoid.nifty.elements.Element.renderInternalChildElements(Element.java:644)
            at de.lessvoid.nifty.elements.Element.renderChildren(Element.java:637)
            at de.lessvoid.nifty.elements.Element.render(Element.java:615)
            at de.lessvoid.nifty.elements.Element.renderInternalChildElements(Element.java:644)
            at de.lessvoid.nifty.elements.Element.renderChildren(Element.java:637)
            at de.lessvoid.nifty.elements.Element.render(Element.java:606)
            at de.lessvoid.nifty.screen.Screen.renderLayers(Screen.java:313)
            at de.lessvoid.nifty.Nifty.render(Nifty.java:280)
            at com.jme3.niftygui.NiftyJmeDisplay.postQueue(NiftyJmeDisplay.java:169)
            at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:979)
            at com.jme3.renderer.RenderManager.render(RenderManager.java:1035)
            at com.jme3.app.SimpleApplication.update(SimpleApplication.java:252)
            at com.jme3.app.AndroidHarness.update(AndroidHarness.java:467)
            at com.jme3.system.android.OGLESContext.onDrawFrame(OGLESContext.java:349)
            at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1522)
            at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239) 

Here is the code:

package com.openarbrowser.nifty;

import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.Vector3f;
import com.jme3.niftygui.NiftyJmeDisplay;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;

import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.screen.Screen;
import de.lessvoid.nifty.screen.ScreenController;

public class NiftyJME extends SimpleApplication implements ScreenController {

private static final String TAG = "NiftyJME";

//Nifty class for the GUI
private Nifty nifty;

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

@Override
public void simpleInitApp() {
    // Do not display statistics
    setDisplayStatView(false);
    setDisplayFps(false);

    Box b = new Box(Vector3f.ZERO, 1, 1, 1);
    Geometry geom = new Geometry("Box", b);
    Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    mat.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg"));
    geom.setMaterial(mat);
    rootNode.attachChild(geom);

    NiftyJmeDisplay niftyDisplay = new NiftyJmeDisplay(assetManager,
            inputManager,
            audioRenderer,
            guiViewPort);
    nifty = niftyDisplay.getNifty();
    nifty.fromXml("Interface/Nifty/HelloJme.xml", "start");

    // attach the nifty display to the gui view port as a processor
    guiViewPort.addProcessor(niftyDisplay);
    //guiViewPort.setEnabled(true);
    //guiViewPort.setClearFlags(false, true, false);
    flyCam.setEnabled(false);
}

@Override
public void bind(Nifty nifty, Screen screen) {
    this.nifty = nifty;
    Screen myScreen = nifty.getCurrentScreen();
    System.out.println("Enter Bind - screen = " + myScreen);

}

@Override
public void onStartScreen() {
    System.out.println("Enter onStartScreen");
}

@Override
public void onEndScreen() {
    System.out.println("Enter onEndScreen");

}

public void quit(){
    nifty.gotoScreen("end");
}


@Override
public void simpleUpdate(float tpf) {

}

   }

The lwjgl jars are not needed for Android.

If I recall correctly somewhere I have read to avoid using conversion of blender models in game. It is better for the performance to convert all models to .j3o. Therefore, I will not include jme3-blender in android project.