Why I can't use TerrainTestAdvanced in the JMETest on the Android Moblie?

I want to make a muti AlphaMap Terrain on the mobile,when I use the “Common/MatDefs/Terrain/Terrain.j3md” material ,it runs well,the material use “Alpha”,“Tex1”,“Tex2”,“Tex3”,it is running as the following Pic:

But when I use the “Common/MatDefs/Terrain/TerrainLighting.j3md” ,it can’t run on the android mobile,I can only use the “DiffuseMap”, “DiffuseMap_1”,“DiffuseMap_2” but the last "diffuseMap"from 3 to 11 can’t be use together ,the code is and the log are as the followings:
[java] Material matRock4;
private TerrainQuad terrain4;
private void createTerrain(Node rootNode) {
matRock4 = new Material(assetManager, “Common/MatDefs/Terrain/TerrainLighting.j3md”);
matRock4.setBoolean(“useTriPlanarMapping”, false);
matRock4.setBoolean(“WardIso”, true);
matRock4.setTexture(“AlphaMap”, assetManager.loadTexture(“alphamap.tga”));
matRock4.setTexture(“AlphaMap_1”, assetManager.loadTexture(“alphamap.tga”));

  Texture heightMapImage = assetManager.loadTexture("Terrain/splat/pools.png");
  Texture grass = assetManager.loadTexture("Terrain/splat/grass.jpg");
  
  grass.setWrap(WrapMode.Repeat);
  matRock4.setTexture("DiffuseMap", grass);
  matRock4.setFloat("DiffuseMap_0_scale", 64);
  
  Texture dirt = assetManager.loadTexture("Terrain/splat/dirt.jpg");
  dirt.setWrap(WrapMode.Repeat);
  matRock4.setTexture("DiffuseMap_1", dirt);
  matRock4.setFloat("DiffuseMap_1_scale", 16);
  
  Texture rock = assetManager.loadTexture("Terrain/splat/road.jpg");
  rock.setWrap(WrapMode.Repeat);
  matRock4.setTexture("DiffuseMap_2", rock);
  matRock4.setFloat("DiffuseMap_2_scale", 128);
  
 Texture stone = assetManager.loadTexture("Terrain/splat/road.jpg");
 stone.setWrap(WrapMode.Repeat);
 matRock4.setTexture("DiffuseMap_5", stone);
 matRock4.setFloat("DiffuseMap_5_scale", 128);
  
  Texture normalMap0 = assetManager.loadTexture("Terrain/splat/grass_normal.jpg");
  normalMap0.setWrap(WrapMode.Repeat);
  Texture normalMap1 = assetManager.loadTexture("Terrain/splat/dirt_normal.png");
  normalMap1.setWrap(WrapMode.Repeat);
  Texture normalMap2 = assetManager.loadTexture("Terrain/splat/road_normal.png");
  normalMap2.setWrap(WrapMode.Repeat);
  Texture normalMap5 = assetManager.loadTexture("Terrain/splat/road_normal.png");
  normalMap5.setWrap(WrapMode.Repeat);
  
  matRock4.setTexture("NormalMap", normalMap0);
  matRock4.setTexture("NormalMap_1", normalMap1);
  matRock4.setTexture("NormalMap_2", normalMap2);
  matRock4.setTexture("NormalMap_4", normalMap5);

  AbstractHeightMap heightmap = null;
  try {
      heightmap = new ImageBasedHeightMap(heightMapImage.getImage(), 0.25f);
      heightmap.load();
  } catch (Exception e) {
      e.printStackTrace(); 
  }
  terrain4= new TerrainQuad("terrain", 65, 513, heightmap.getHeightMap());
  List<Camera> cameras = new ArrayList<Camera>();
  cameras.add(getCamera());
  terrain4.setMaterial(matRock4);
  terrain4.setLocalScale(new Vector3f(5, 5, 5));
  terrain4.setLocalTranslation(new Vector3f(0, -30, 0));
  terrain4.setLocked(false); // unlock it so we can edit the height

  terrain4.setShadowMode(ShadowMode.Receive);
  rootNode.attachChild(terrain4);

}[/java]
the error is
04-17 18:42:38.361: E/PhonePolicy(8291): Could not preload class for phone policy: com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): SEVERE Exception thrown in Thread[GLThread 1244,5,main]
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): com.jme3.renderer.RendererException: An OpenGL error has occurred: invalid enum
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.renderer.android.RendererUtil.checkGLError(RendererUtil.java:49)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.renderer.android.OGLESShaderRenderer.setTexture(OGLESShaderRenderer.java:1786)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.material.MatParamTexture.apply(MatParamTexture.java:86)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.material.Material.render(Material.java:1088)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:523)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:322)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:374)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:763)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:719)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:983)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.renderer.RenderManager.render(RenderManager.java:1029)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.app.SimpleApplication.update(SimpleApplication.java:252)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.app.AndroidHarness.update(AndroidHarness.java:467)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at com.jme3.system.android.OGLESContext.onDrawFrame(OGLESContext.java:349)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1516)
04-17 18:43:11.711: E/com.jme3.app.AndroidHarness(8291): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

Can anyone help me ?

You have to use the unlit terrain material.

but I want to create different terrain faces with different textrues at the same time ,how can I make it?

Check out this post: http://hub.jmonkeyengine.org/forum/topic/black-terrain-texturematerial-in-android/
It has to do with the android image loader, which is fixed in the jme 3.1 branch