Ошибка "EGL_BAD_MATCH" в эмуляторе Android Studio

У меня есть один вопрос, что это?

E/EGL_emulation: tid 3912: eglSurfaceAttrib(1146): error 0x3009 (EGL_BAD_MATCH)

что мне делать, чтобы разрешить эту ошибку?

public class Main extends AppCompatActivity {

public TextView score;
public ImageView alergator1;
public ImageView alergator2;
public FrameLayout frame;
public int scoreINT;
public float frameHigh;
public float frameWidh;
public float alergator1X;
public float alergator1Y;
public float alergator2X;
public float alergator2Y;
public ImageView miscare;
public int x;

private Handler handler = new Handler();
private static Timer timer = new Timer();



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    score = (TextView) findViewById(R.id.Score);
    alergator1 = (ImageView) findViewById(R.id.runner);
    alergator2 = (ImageView) findViewById(R.id.runner2);
    frame = (FrameLayout) findViewById(R.id.Frame);


    frame.post(new Runnable() {
        @Override
        public void run() {
            frameHigh = frame.getHeight();
            frameWidh = frame.getWidth();
        }
    });

    alergator1.post(new Runnable() {
        @Override
        public void run() {
            alergator1X = frameWidh / 2;
            alergator1.setX(alergator1X);
            alergator1Y = frameHigh - 250;
            alergator1.setY(alergator1Y);
        }
    });


    alergator2.post(new Runnable() {
        @Override
        public void run() {
            alergator2X = frameWidh / 2;
            alergator2.setX(alergator2X);
            alergator2Y = frameHigh - 250;
            alergator2.setY(alergator2Y);
        }
    });


    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            handler.post(new Runnable() {
                @Override
                public void run() {
                    x++;
                    if (x % 2 == 0) {
                        alergator1.setVisibility(View.INVISIBLE);
                        alergator2.setVisibility(View.VISIBLE);
                    } else {
                        alergator2.setVisibility(View.INVISIBLE);
                        alergator1.setVisibility(View.VISIBLE);

                    }

                }
            });

        }
    }, 0, 900);

Это код, приложение работает правильно, но я хочу знать, что происходит. Может быть, мой код беспорядочен, но я новичок.

Ответ 1

EGL означает Emulated Graphics Library. Операционная система мобильного устройства Android использует EGL для рендеринга 3D-графики. Узнайте больше о EGL из wiki: https://en.wikipedia.org/wiki/EGL_(API)

Когда он говорит EGL_BAD_MATCH, ваша Emulated Graphics Library, которую вы/система выбрали, плоха. Существует два режима EGL, как показано на рисунке ниже. введите описание изображения здесь.

Решение: какой режим дает проблемы, просто перейдите в другой режим, он должен исправить. Имейте в виду, что работа в режиме эмуляции программного обеспечения может работать значительно медленнее, чем при установленном режиме эмуляции. Бывают случаи, когда ошибки отображаются (показывается), но приложение работает нормально. Если это так, вы можете проигнорировать ошибки и насладиться превосходной графической эмуляцией.

Ответ 2

У меня также возникла аналогичная проблема, я попробовал простую примерную программу, и она показывает эту ошибку. В моем случае я отключил функцию мгновенного запуска Android-студии и исчез. Я не знаю, почему, но вы можете попробовать.