I exported an simple animated ogre .mesh.xml(and .material、.skeleton.xml) from Maya2012 with OgreMax-plugin.
And i import them into my JME-project which has simple code to play an animation. When i run it in jme-desktop-emulator, it was ok, but if i run it in my phone(Android 2.3.3),crash happend.
Android-logcat-info like this:
07-18 18:07:14.117: E/OGLESShaderRenderer(9670): Errooooooooooot(3)
07-18 18:07:14.140: E/AndroidHarness(9670): com.jme3.renderer.RendererException: compile error in:ShaderSource[name=Common/MatDefs/Light/Lighting.frag, defines, type=Fragment] error:(36:0) : error : Not expected token(’&&’) in expression.
07-18 18:07:14.140: E/AndroidHarness(9670): (148:0) : error : Not expected token(’&&’) in expression.
07-18 18:07:14.140: E/AndroidHarness(9670): (250:0) : error : Not expected token(’&&’) in expression.
07-18 18:07:14.148: E/AndroidHarness(9670): SEVERE AndroidHarness 下午6:07:14 Exception thrown in Thread[GLThread 11,5,main]: at com.jme3.renderer.android.OGLESShaderRenderer.updateShaderSourceData(1086)
07-18 18:07:14.148: E/AndroidHarness(9670): at com.jme3.renderer.android.OGLESShaderRenderer.updateShaderData(1131)
07-18 18:07:14.148: E/AndroidHarness(9670): at com.jme3.renderer.android.OGLESShaderRenderer.setShader(1236)
07-18 18:07:14.148: E/AndroidHarness(9670): at com.jme3.material.Material.renderMultipassLighting(789)
07-18 18:07:14.148: E/AndroidHarness(9670): at com.jme3.material.Material.render(1016)
Any help? Thanks!
All my code are here:
[java]public class Main extends SimpleApplication
implements AnimEventListener, ActionListener {
private AnimChannel channel;
private AnimControl control;
public static void main(String[] args) {
Main app = new Main();
app.start();
}
@Override
public void simpleInitApp() {
flyCam.setMoveSpeed(10f);
cam.setLocation(new Vector3f(6.4013605f, 7.488437f, 12.843031f));
cam.setRotation(new Quaternion(-0.060740203f, 0.93925786f, -0.2398315f, -0.2378785f));
DirectionalLight dl = new DirectionalLight();
dl.setDirection(new Vector3f(-0.1f, -0.7f, -1).normalizeLocal());
dl.setColor(new ColorRGBA(1f, 1f, 1f, 1.0f));
rootNode.addLight(dl);
Spatial model = (Spatial) assetManager.loadModel("Models/ff.j3o");
model.center();
control = model.getControl(AnimControl.class);
control.addListener(this);
channel = control.createChannel();
for (String anim : control.getAnimationNames())
System.out.println(anim);
channel.setAnim("run");
rootNode.attachChild(model);
}
@Override
public void simpleUpdate(float tpf) {
super.simpleUpdate(tpf);
}
public void onAnimCycleDone(AnimControl control, AnimChannel channel, String animName) {
}
public void onAnimChange(AnimControl control, AnimChannel channel, String animName) {
}
public void onAction(String binding, boolean value, float tpf) {
}
}
[/java]
Just don’t use trunk, use the stable version. (branches/3.0beta)
What is your device, please?
@normen
Thank you for your advices, but my jme-sdk-version is already the 3.0beta, like this(info from sdk menu: help-about):
[java]Product Version: jMonkeyEngine SDK 3.0beta
Java: 1.7.0_03; Java HotSpot™ Server VM 22.1-b02
System: Windows XP version 5.1 running on x86; GBK; zh_CN (jmonkeyplatform)
Userdir: C:Documents and SettingsuserApplication Data.jmonkeyplatform3.0beta[/java]
@nehon
My device is a local product: ZTE-T U880
CPU: ARMv6 - 806MHZ
GPU: Marvell - GC530
OpenGL-Support: OpenGL ES 2.0
Android Version: 2.3.7
The SDK you can update with Help-> Check for Updates