(LibGDX) Android-приложение падает при создании FrameBuffers - PullRequest
0 голосов
/ 11 октября 2018

Я получил отчет о сбое в Google Play Store для одного из моих приложений для Android, созданного с использованием LibGDX.

Huawei MediaPad T3 7 (hwbg2), Android 6.0

java.lang.IllegalStateException:
  at com.badlogic.gdx.graphics.glutils.GLFrameBuffer.build (GLFrameBuffer.java:233)
  at com.badlogic.gdx.graphics.glutils.GLFrameBuffer.<init> (GLFrameBuffer.java:87)
  at com.badlogic.gdx.graphics.glutils.FrameBuffer.<init> (FrameBuffer.java:51)
  at com.badlogic.gdx.graphics.glutils.GLFrameBuffer$FrameBufferBuilder.build (GLFrameBuffer.java:474)
  at com.badlogic.gdx.graphics.glutils.FrameBuffer.createFrameBuffer (FrameBuffer.java:72)
  at com.badlogic.gdx.graphics.glutils.FrameBuffer.createFrameBuffer (FrameBuffer.java:56)
  at MY_PACKAGE.editor.Backup.<init> (Backup.java:21)
  at MY_PACKAGE.editor.EditingImage.<init> (EditingImage.java:277)
  at MY_PACKAGE.screens.EditingScreen.<init> (EditingScreen.java:227)
  at MY_PACKAGE.screens.Screens.<init> (Screens.java:42)
  at MY_PACKAGE.MAIN_CLASS$2.run (MAIN_CLASS.java:121)
  at MY_PACKAGE.screens.SplashScreen.render (SplashScreen.java:93)
  at com.badlogic.gdx.Game.render (Game.java:46)
  at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame (AndroidGraphics.java:495)
  at android.opengl.GLSurfaceView$GLThread.guardedRun (GLSurfaceView.java:1599)
  at android.opengl.GLSurfaceView$GLThread.run (GLSurfaceView.java:1295)

Код в GLFrameBuffer.java:233

if (result == GL20.GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT)
            throw new IllegalStateException("frame buffer couldn't be constructed: incomplete attachment");

EditingImage.java

class EditingImage{

    public static final int pixmapWidth = 1024;

    public EditingImage{
        frameBuffer = FrameBuffer.createFrameBuffer(Pixmap.Format.RGB888,pixmapWidth,pixmapWidth,false);

        ....

        for (int i = 0; i < 50; i++){
          final Backup backup = new Backup(pixmapWidth);
          availableBackups.add(backup);
        }
    }
}

Backup.java выглядит следующим образом

Backup(int width){
    frameBuffer = FrameBuffer.createFrameBuffer(Pixmap.Format.RGB888, width, width, false);
    ....
}

При создании FrameBuffer произошел сбой приложения в Backup.java (после того, сколько циклов я не знаю).

Как вы можете видеть, FrameBuffer, созданный в EditingImage, не падал и выполнялся до создания экземпляров объектов Backup.

Он нормально работает на моем телефоне (Huawei Y6II).Также протестировали в некоторых телефонах Samsung.

Пожалуйста, помогите!

...