2 joseph zhang Joseph_Zhang 于 2014.07.31 19:10 提问

在tiledmappacker工具中调用libgdx的Gdx类的静态对象为null的问题

1、问题由来
最近在学习libgdx(使用libgdx0.9.9),使用地图打包工具tiledmappacker.jar时报错。
实在没有办法,找到网上的一位兄台发的一篇贴子(链接如下)

libgdx的tmx地图处理工具gdx-tiled-preprocessor.jar(TiledMapPacker)修正版  http://www.cnblogs.com/SkyD/archive/2012/04/19/2457237.html

试着自己生成tiledmappacker.jar,但是运行还是有相同的错误,开始以为版本问题,不过看了代码后发现不是。最后实在没招了,把gdx-source.jar包解开,试着修改,但是最后还是没有解决问题。

2、问题现象

Gdx.gl.glGenTextures(1, buffer2);

  在执行上面这句代码时, Gdx.gl对象为null,检查Gdx的其他成员变量graphics,audio等, 也全部为null。可是Gdx类并没有改动过,一直是按libgdx的原来代码。后来我直接在main函数中调用Gdx的静态对象,也是同样问题。具体出现的异常如下:

Thread [main] (Suspended (exception NullPointerException))  
Texture.createGLHandle() line: 166  
Texture.create(TextureData) line: 158   
Texture.<init>(FileHandle, Pixmap$Format, boolean) line: 133    
Texture.<init>(FileHandle, boolean) line: 126   
TmxMapLoader.load(String, TmxMapLoader$Parameters) line: 109    
TmxMapLoader.load(String) line: 91  
TiledMapPacker.processMaps(File, File, TexturePacker2$Settings) line: 155   
Main.main(String[]) line: 37    

(说明一下,gdx.jar,gdx-natives.jar.....等相关包已经正常添加并引用了,当然,最后gdx.jar已经删除换成代码了。)  
  
3、附libgdx中的Gdx.java

package com.badlogic.gdx;

import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.GL11;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.GLCommon;

public class Gdx {
public static Application app;
public static Graphics graphics;
public static Audio audio;
public static Input input;
public static Files files;
public static Net net;

public static GLCommon gl;
public static GL10 gl10;
public static GL11 gl11;
public static GL20 gl20;

}

最后,请大家帮忙看看是什么原因引起的,在此先谢谢大家!

1个回答

sinat_26351349
sinat_26351349   2015.03.06 04:09

新版的libgdx不用将地图打包了,直接使用即可。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!