libgdx - 开发中遇到的问题及解决

问题 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:程序没有问题,但却显示编译不过,如图。

libgdx - 开发中遇到的问题及解决_第1张图片


[解决方法]:可以尝试删除Java Build Path->Libraries->Android Dependencies项





把它Remove掉

libgdx - 开发中遇到的问题及解决_第2张图片




问题 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,并重启。




你可能感兴趣的:(libgdx - 开发中遇到的问题及解决)