Note that there are some explanatory texts on larger screens.

plurals
  1. POActor.setx = FATAL EXCEPTION: GLThread 2967
    text
    copied!<p>I am really pulling my hairs our with this funny issue. I am doing my loadingscreen. The smallBox will move to right according to asset manager loading percentage. I received "FATAL EXCEPTION: GLThread 2967" when i try to setX() for my smallBox. I tried resize() but no luck, same error. I am not sure where i went wrong.</p> <p>Here is my code:</p> <pre><code>public class LoadingScreen extends AbstractScreen { private Image bigBox, smallBox; private Stage stage; float loadingPercent=0f; private SpriteBatch batch; private Texture loadingTexture; public LoadingScreen(game game) { super(game); // load asset here Gdx.app.log("gamelog", "assetManager.load()"); game.assetManager.load("img/loading.pack", TextureAtlas.class); game.assetManager.load("img/splash.pack", TextureAtlas.class); } @Override public void show() { stage = new Stage(); batch = new SpriteBatch(); loadingTexture = new Texture(Gdx.files.internal("img/loadingTexture.png")); loadingTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear); TextureRegion bigBoxTr = new TextureRegion(loadingTexture, 0, 0, 800, 480); TextureRegion smallBoxTr = new TextureRegion(loadingTexture, 0, 790, 800, 110); Image bigBox = new Image(bigBoxTr); Image smallBox = new Image(smallBoxTr); smallBox.setX(-800); smallBox.setY(160); bigBox.setX(0); bigBox.setY(0); stage.addActor(bigBox); stage.addActor(smallBox); } @Override public void render(float delta) { // Clear the screen Gdx.gl.glClearColor(0f, 0f, 0f, 1f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); loadingPercent = Interpolation.linear.apply(loadingPercent, game.assetManager.getProgress(), 0.1f); Gdx.app.log("gamelog", "LoadingScreen: =" + (-800+(int)(loadingPercent*800*2)) + " getProgress" + game.assetManager.getProgress()); smallBox.setX(-800+(int)(loadingPercent*800*2)); //&lt;------ problem point smallBox.invalidate(); if (game.assetManager.update()) { Gdx.app.log("gamelog", "LoadingScreen: before calling SplashScreen =" + (-800+(int)(loadingPercent*800*2)) + " getProgress" + game.assetManager.getProgress()); game.setScreen(new SplashScreen(game)); } stage.act(delta); stage.draw(); } </code></pre> <p>error log on LogCat</p> <pre><code>11-01 22:08:54.308: I/awesomegame(24701): LoadingScreen: =-800 getProgress0.0 11-01 22:08:54.318: D/memalloc(24701): /dev/pmem: Unmapping buffer base:0x51f68000 size:10297344 offset:9527296 11-01 22:08:54.328: W/dalvikvm(24701): threadid=11: thread exiting with uncaught exception (group=0x40c2ca68) 11-01 22:08:54.328: E/AndroidRuntime(24701): FATAL EXCEPTION: GLThread 2967 11-01 22:08:54.328: E/AndroidRuntime(24701): java.lang.NullPointerException 11-01 22:08:54.328: E/AndroidRuntime(24701): at com.example.awesomegame.screens.LoadingScreen.render(LoadingScreen.java:128) 11-01 22:08:54.328: E/AndroidRuntime(24701): at com.badlogic.gdx.Game.render(Game.java:46) 11-01 22:08:54.328: E/AndroidRuntime(24701): at com.example.awesomegame.somegame.render(somegame.java:25) 11-01 22:08:54.328: E/AndroidRuntime(24701): at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:487) 11-01 22:08:54.328: E/AndroidRuntime(24701): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1463) 11-01 22:08:54.328: E/AndroidRuntime(24701): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1217) </code></pre> <p>However, bigBox display correctly when i comment out line "smallBox.setX(-800+(int)(loadingPercent*800*2)); //&lt;------ problem point". I thought is the float/int issue, however, according to LogCat (when line commented out):</p> <pre><code>11-01 22:03:29.261: I/awesomegame(24283): LoadingScreen: =-800 getProgress0.0 11-01 22:03:29.301: D/memalloc(24283): /dev/pmem: Mapped buffer base:0x52e94000 size:4255744 offset:3485696 fd:67 11-01 22:03:29.301: I/awesomegame(24283): LoadingScreen: =-800 getProgress0.0 11-01 22:03:29.311: D/memalloc(24283): /dev/pmem: Mapped buffer base:0x533c7000 size:5025792 offset:4255744 fd:70 11-01 22:03:29.321: I/awesomegame(24283): LoadingScreen: =-800 getProgress0.0 11-01 22:03:29.331: I/awesomegame(24283): LoadingScreen: =-800 getProgress0.0 ... 11-01 22:03:30.362: I/awesomegame(24283): LoadingScreen: =-38 getProgress0.5 11-01 22:03:30.512: I/awesomegame(24283): LoadingScreen: =-34 getProgress0.5 11-01 22:03:30.532: I/awesomegame(24283): LoadingScreen: =-31 getProgress0.5 11-01 22:03:30.532: I/awesomegame(24283): LoadingScreen: =-28 getProgress0.5 11-01 22:03:30.552: I/awesomegame(24283): LoadingScreen: =-25 getProgress0.5 11-01 22:03:30.572: I/awesomegame(24283): LoadingScreen: =-23 getProgress0.5 11-01 22:03:30.572: I/awesomegame(24283): LoadingScreen: =-21 getProgress0.5 11-01 22:03:30.592: I/awesomegame(24283): LoadingScreen: =-19 getProgress0.5 11-01 22:03:30.612: I/awesomegame(24283): LoadingScreen: =-17 getProgress0.5 11-01 22:03:30.612: I/awesomegame(24283): LoadingScreen: =-15 getProgress0.5 11-01 22:03:30.672: I/awesomegame(24283): LoadingScreen: =-14 getProgress0.5 11-01 22:03:30.692: I/awesomegame(24283): LoadingScreen: =-12 getProgress0.5 11-01 22:03:30.872: I/awesomegame(24283): LoadingScreen: =-11 getProgress0.5 11-01 22:03:30.882: I/awesomegame(24283): LoadingScreen: before calling SplashScreen =-11 getProgress1.0 </code></pre> <p>it seems that the working formula is right. I have been stuck on this issue for days and not sure where and how to fix it.</p> <p>Thank you very much, any help is much appreciated. </p> <p>Regards Zii</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload