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

pic_q02


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


pic_q02_a1


把它Remove掉

pic_q02_a2




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




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值