2016-11-19 53 views
10

質問が1つありますが、それは何ですか?Androidスタジオエミュレータの「EGL_BAD_MATCH」エラー

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); 

これはコードなので、アプリは正しく動作しますが、何が起こっているのかを知りたいのですが。たぶん私のコードは無秩序ですが、私は初心者です。

+0

このエラーが発生したときの対応と、このエラーが発生したコードについて教えてください – aleksandrbel

+0

http://stackoverflow.com/questions/28966496/android-studio-emulator-eglsurfaceattrib-not-implemented dontコメントするのに十分な担当者がいる – Aaahh

+0

ようこそスタックオーバーフロー!私はあなたの質問を編集しました。エラーを再現するためにコードを最小限のコードに減らすことでそれを改善できますが、全体としてはまともな質問です。 –

答えて

1

私も同様の問題を経験しました。私は簡単なサンプルアプリケーションを試しましたが、このエラーが表示されます。私の場合は、アンドロイドスタジオのインスタントラン機能をオフにして消えます。なぜか分からないけど、試してみることができます。

+0

私にとってこのトリックは役に立たなかった。 – Gaston

4

EGLは、エミュレートされたグラフィックライブラリを意味します。 Androidモバイルデバイスのオペレーティングシステムは、3DグラフィックスレンダリングにEGLを使用します。 wikiの詳細については、https://en.wikipedia.org/wiki/EGL_(API)

と言います。あなたのエミュレートされたグラフィックライブラリはあなた/システムが悪いものです。次の図に示すように、2つのEGLモードがあります。 enter image description here

解決策:どのモードが問題を起こしているか、別のモードに変更するだけで修正する必要があります。ソフトウェアエミュレーションモードでの実行は、ハードウェアエミュレーションモードの設定よりもかなり遅く実行される可能性があることに注意してください。エラーがスローされる(表示される)場合がありますが、アプリは正常に動作します。このような場合は、エラーを無視して優れたグラフィックエミュレーションを楽しむことができます。

関連する問題