0
我遇到了一些問題。我對libGDX有點新,對於最新的錯誤一無所知。
在這裏我有一個狀態,有三個文本按鈕的實例。它在我的桌面上工作正常,但在手機上崩潰。我不確定問題是什麼,但是當我註釋掉兩個實例的代碼時,它可以在我的手機上使用。
LibGDX遊戲在桌面上按預期工作,但不在Android設備上運行
public class MenuStateTest extends State {
Stage stage;
TextButton button, button2, button3;
TextButton.TextButtonStyle textButtonStyle;
BitmapFont font;
Skin skin;
TextureAtlas buttonAtlas, button2Atlas, button3Atlas;
public MenuStateTest(GameStateManager gsm) {
super(gsm);
stage = new Stage();
Gdx.input.setInputProcessor(stage);
font = new BitmapFont();
skin = new Skin();
buttonAtlas = new TextureAtlas("buttonTest.pack");
skin.addRegions(buttonAtlas);
textButtonStyle = new TextButton.TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("1BBlock");
textButtonStyle.down = skin.getDrawable("T1BBlock");
button = new TextButton("", textButtonStyle);
stage.addActor(button);
button.setPosition(20,200);
button2Atlas = new TextureAtlas("button2Test.pack");
skin.addRegions(button2Atlas);
textButtonStyle = new TextButton.TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("2BBlock");
textButtonStyle.down = skin.getDrawable("T2BBlock");
button2 = new TextButton("", textButtonStyle);
stage.addActor(button2);
button2.setPosition(175,200);
button3Atlas = new TextureAtlas("button3Test.pack");
skin.addRegions(button3Atlas);
textButtonStyle = new TextButton.TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("3BBlock");
textButtonStyle.down = skin.getDrawable("T3BBlock");
button3 = new TextButton("", textButtonStyle);
stage.addActor(button3);
button3.setPosition(330,200);
}
@Override
protected void render(SpriteBatch sb) {
stage.draw();
任何幫助,將不勝感激。
謝謝。
編輯:這就是我能夠從
03-23 11:44:54.510 25775-25799/? E/AndroidRuntime: FATAL EXCEPTION: GLThread 2379
Process: com.mygame.game.android, PID: 25775
Theme: themes:{default=overlay:com.blazze11.euphoria.dark, iconPack:system, fontPkg:system, com.android.systemui=overlay:com.blazze11.euphoria.dark, com.android.systemui.navbar=overlay:system}
com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: button2Test.pack (Internal)
at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:77)
at com.badlogic.gdx.graphics.g2d.TextureAtlas$TextureAtlasData.<init>(TextureAtlas.java:103)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.<init>(TextureAtlas.java:231)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.<init>(TextureAtlas.java:226)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.<init>(TextureAtlas.java:216)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.<init>(TextureAtlas.java:211)
at com.mygame.game.States.MenuStateTest.<init>(MenuStateTest.java:41)
at com.mygame.game.MyGame.create(MyGame.java:29)
at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:243)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1519)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
Caused by: java.io.FileNotFoundException: button2Test.pack
at android.content.res.AssetManager.openAsset(Native Method)
at android.content.res.AssetManager.open(AssetManager.java:331)
at android.content.res.AssetManager.open(AssetManager.java:305)
at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:75)
at com.badlogic.gdx.graphics.g2d.TextureAtlas$TextureAtlasData.<init>(TextureAtlas.java:103)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.<init>(TextureAtlas.java:231)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.<init>(TextureAtlas.java:226)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.<init>(TextureAtlas.java:216)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.<init>(TextureAtlas.java:211)
at com.mygame.game.States.MenuStateTest.<init>(MenuStateTest.java:41)
at com.mygame.game.MyGame.create(MyGame.java:29)
at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:243)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1519)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
請提供錯誤堆棧跟蹤 –
當我用try和catch塊圍繞最後兩個按鈕實例時,代碼會在我的手機上運行。但只有第一個按鈕被渲染到屏幕上。 – user2965071