Java libgdx android-未加载我自己的资产文件

Java libgdx android-未加载我自己的资产文件,java,android,file,libgdx,assets,Java,Android,File,Libgdx,Assets,我是libgdx的新手,我正在尝试做一些教程。我在加载自己的.png文件时遇到问题 标准项目包含libgdx.png文件,可以正常工作。当我在桌面或安卓系统上运行它时,它工作正常。图像显示良好 相同的代码,只是另一个文件(也是png)。 在桌面版上运行良好,但无法在android上运行 我真的不明白会发生什么,因为文件(libgdx.png和my.png)在同一个文件夹中,第一个可以在android上工作,但第二个不能 public class AwesomeGame implements Ap

我是libgdx的新手,我正在尝试做一些教程。我在加载自己的
.png
文件时遇到问题

标准项目包含
libgdx.png
文件,可以正常工作。当我在桌面或安卓系统上运行它时,它工作正常。图像显示良好

相同的代码,只是另一个文件(也是
png
)。 在桌面版上运行良好,但无法在android上运行

我真的不明白会发生什么,因为文件(libgdx.png和my.png)在同一个文件夹中,第一个可以在android上工作,但第二个不能

public class AwesomeGame implements ApplicationListener {
SpriteBatch batch;
Texture man;
Texture abc;
Vector2 position;

@Override
public void create() {
    batch = new SpriteBatch();
    man = new Texture(Gdx.files.internal("my.png"));
    position = new Vector2(50,50);
}

@Override
public void dispose() {
}

@Override
public void render() {
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    if(Gdx.input.isKeyPressed(Input.Keys.W)){
        position.y+=1f;
    }
    if(Gdx.input.isKeyPressed(Input.Keys.S)){
        position.y-=1f;
    }
    if(Gdx.input.isKeyPressed(Input.Keys.D)){
        position.x+=1f;
    }
    if(Gdx.input.isKeyPressed(Input.Keys.A)){
        position.x-=1f;
    }

    if(Gdx.input.getAccelerometerX()!=0){
        position.x-=Gdx.input.getAccelerometerX();
    }
    if(Gdx.input.getAccelerometerY()!=0){
        position.y+=Gdx.input.getAccelerometerY();
    }

    batch.setColor(position.x,position.y,10,10);
    batch.begin();
    batch.draw(man, position.y, position.x);
    batch.end();
}
有人能给我解释一下吗;(

天哪,我明白了

纹理宽度和高度必须是2的幂

但如果我设定

cfg.useGL20 = true;

没有2的能力,任何东西都可以工作。

opengl 2.0我很确定不需要纹理达到2的能力,这就是为什么它可以工作的原因。opengl 1.0也将很快被libgdx淘汰。使用其他软件保存png图像时,我遇到了类似的问题,我用blender或gimp等工具保存png解决了这个问题。