问题 01:在 ImmediateModeRenderer20 中 抛出了 NullPointerException。
05-03 09:50:43.250: E/AndroidRuntime(893): java.lang.NullPointerException
05-03 09:50:43.250: E/AndroidRuntime(893):
at com.badlogic.gdx.graphics.glutils.ShaderProgram.loadShader(ShaderProgram.java:199)
05-03 09:50:43.250: E/AndroidRuntime(893):
at com.badlogic.gdx.graphics.glutils.ShaderProgram.compileShaders(ShaderProgram.java:178)
05-03 09:50:43.250: E/AndroidRuntime(893):
at com.badlogic.gdx.graphics.glutils.ShaderProgram.<init>(ShaderProgram.java:161)
05-03 09:50:43.250: E/AndroidRuntime(893): at com.badlogic.gdx.graphics.glutils.ImmediateModeRenderer20.createDefaultShader(ImmediateModeRenderer20.java:215)
05-03 09:50:43.250: E/AndroidRuntime(893):
at com.badlogic.gdx.graphics.glutils.ImmediateModeRenderer20.<init>(ImmediateModeRenderer20.java:50)
05-03 09:50:43.250: E/AndroidRuntime(893):
at com.badlogic.cubocy.Cubocy.MapRenderer.<init>(MapRenderer.java:22)
05-03 09:50:43.250: E/AndroidRuntime(893):
at com.badlogic.cubocy.screens.GameScreen.show(GameScreen.java:24)
[解决方法]:原因是在程序中用到了 GL2.0,但又没有把它enable。
public class MainActivity extends AndroidApplication {
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useAccelerometer = false;
config.useCompass = false;
config.useWakelock = true;
config.useGL20 = true; // 加上这句就解决了
initialize(new Cubocy(), config);
}
}
问题 02:程序没有问题,但却显示编译不过,如图。
[解决方法]:可以尝试删除Java Build Path->Libraries->Android Dependencies项
把它Remove掉
问题 03:程序在使用SpiretCache画图时不起作用。
[解决方法]:在调用 SpiretCache.draw()前要加入一下步骤:
例如程序:
m_Cache.begin();
for (int blockY = 0; blockY < 4; blockY++) {
for (int blockX = 0; blockX < 6; blockX++) {
m_Cache.draw(blocks[blockX][blockY]);
}
}
m_Cache.end();
没法画出图像。
[解决方法]:在调用 SpiretCache.draw()前要加入以下步骤:
1) 调用 ImmediateModeRenderer20.begin();
ImmediateModeRenderer20 render;
render.begin();
2) 设置正确的 OrthographicCamera 的位置。
OrthographicCamera m_Cam;
this.m_Cam.position.set(11, 151, 0);
3) OrthographicCamera update()置为 false
m_Cam.update(false);
问题 04: 出现异常 A/libc(796): Fatal signal 11 (SIGSEGV) at 0x4f5f4c46 (code=1), thread 811 (Thread-51)
[解决方法]:在进程管理中杀死 adb.exe,并重启。