2013-03-28 68 views
6

我試圖做簡單的遊戲在Android中使用AndEngine tutorial沒有一個EGLConfig發現

現在,當我運行該項目,我得到的錯誤,說java.lang.IllegalArgumentException異常:沒有一個EGLConfig找到了!

TowerOfHanoiActivity.java

public class TowerOfHanoiActivity extends SimpleBaseGameActivity { 

    private static int CAMERA_WIDTH = 800; 
    private static int CAMERA_HEIGHT = 480; 
    private ITextureRegion mBackgroundTextureRegion, mTowerTextureRegion, 
      mRing1, mRing2, mRing3; 

    @Override 
    public EngineOptions onCreateEngineOptions() { 

     final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 

     return new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, 
       new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera); 
    } 

    @Override 
    protected void onCreateResources() { 

     try { 

      // 1 - Set up bitmap textures 
      ITexture backgroundTexture = new BitmapTexture(
        this.getTextureManager(), new IInputStreamOpener() { 

         @Override 
         public InputStream open() throws IOException { 
          return getAssets().open("gfx/background.png"); 
         } 
        }); 

      ITexture towerITexture = new BitmapTexture(
        this.getTextureManager(), new IInputStreamOpener() { 

         @Override 
         public InputStream open() throws IOException { 
          return getAssets().open("gfx/tower.png"); 
         } 
        }); 

      ITexture ring1 = new BitmapTexture(this.getTextureManager(), 
        new IInputStreamOpener() { 

         @Override 
         public InputStream open() throws IOException { 
          return getAssets().open("gfx/ring1.png"); 
         } 
        }); 
      ITexture ring2 = new BitmapTexture(this.getTextureManager(), 
        new IInputStreamOpener() { 

         @Override 
         public InputStream open() throws IOException { 
          return getAssets().open("gfx/ring2.png"); 
         } 
        }); 
      ITexture ring3 = new BitmapTexture(this.getTextureManager(), 
        new IInputStreamOpener() { 

         @Override 
         public InputStream open() throws IOException { 
          return getAssets().open("gfx/ring3.png"); 
         } 
        }); 

      // 2 - Load bitmap textures into VRAM 

      backgroundTexture.load(); 
      towerITexture.load(); 
      ring1.load(); 
      ring2.load(); 
      ring3.load(); 

      // 3 - Set up texture regions 
      this.mBackgroundTextureRegion = TextureRegionFactory.extractFromTexture(backgroundTexture); 
      this.mTowerTextureRegion = TextureRegionFactory.extractFromTexture(towerITexture); 
      this.mRing1 = TextureRegionFactory.extractFromTexture(ring1); 
      this.mRing2 = TextureRegionFactory.extractFromTexture(ring2); 
      this.mRing3 = TextureRegionFactory.extractFromTexture(ring3); 

     } catch (IOException e) { 
      Debug.e(e); 
     } 

    } 

    @Override 
    protected Scene onCreateScene() { 

     // 1 - Create new scene 
     final Scene scene = new Scene(); 
     Sprite backroundSprite = new Sprite(0, 0, this.mBackgroundTextureRegion, getVertexBufferObjectManager()); 
     scene.attachChild(backroundSprite); 
     return scene; 
    } 

} 

的logcat:

03-28 15:21:17.957: D/AndEngine(1478): TowerOfHanoiActivity.onCreate @(Thread: 'main') 
03-28 15:21:17.997: D/dalvikvm(1478): Trying to load lib /data/data/com.tutorial.towerofhanoi/lib/libandengine.so 0xb67ac4e0 
03-28 15:21:18.007: D/dalvikvm(1478): Added shared lib /data/data/com.tutorial.towerofhanoi/lib/libandengine.so 0xb67ac4e0 
03-28 15:21:18.007: D/dalvikvm(1478): No JNI_OnLoad found in /data/data/com.tutorial.towerofhanoi/lib/libandengine.so 0xb67ac4e0, skipping init 
03-28 15:21:18.127: D/AndEngine(1478): TowerOfHanoiActivity.onResume @(Thread: 'main') 
03-28 15:21:18.277: D/libEGL(1478): Emulator without GPU support detected. Fallback to software renderer. 
03-28 15:21:18.277: D/libEGL(1478): loaded /system/lib/egl/libGLES_android.so 
03-28 15:21:18.317: W/dalvikvm(1478): threadid=11: thread exiting with uncaught exception (group=0xb615e180) 
03-28 15:21:18.328: E/AndroidRuntime(1478): FATAL EXCEPTION: GLThread 81 
03-28 15:21:18.328: E/AndroidRuntime(1478): java.lang.IllegalArgumentException: No EGLConfig found! 
03-28 15:21:18.328: E/AndroidRuntime(1478):  at org.andengine.opengl.view.ConfigChooser.chooseConfig(ConfigChooser.java:183) 
03-28 15:21:18.328: E/AndroidRuntime(1478):  at org.andengine.opengl.view.ConfigChooser.chooseConfig(ConfigChooser.java:157) 
03-28 15:21:18.328: E/AndroidRuntime(1478):  at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1009) 
03-28 15:21:18.328: E/AndroidRuntime(1478):  at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1362) 
03-28 15:21:18.328: E/AndroidRuntime(1478):  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216) 
03-28 15:21:18.387: D/gralloc_goldfish(1478): Emulator without GPU emulation detected. 
03-28 15:21:18.427: I/dalvikvm(1478): threadid=3: reacting to signal 3 
03-28 15:21:18.437: I/dalvikvm(1478): Wrote stack traces to '/data/anr/traces.txt' 
03-28 15:21:18.717: D/AndEngine(1478): TowerOfHanoiActivity.onPause @(Thread: 'main') 
03-28 15:21:19.167: D/AndEngine(1478): TowerOfHanoiActivity.onDestroy @(Thread: 'main') 
03-28 15:21:19.197: D/AndEngine(1478): UpdateThread interrupted. Don't worry - this EngineDestroyedException is most likely expected! 
03-28 15:21:19.197: D/AndEngine(1478): org.andengine.engine.Engine$EngineDestroyedException 
03-28 15:21:19.197: D/AndEngine(1478): at org.andengine.engine.Engine.throwOnDestroyed(Engine.java:574) 
03-28 15:21:19.197: D/AndEngine(1478): at org.andengine.engine.Engine.onTickUpdate(Engine.java:560) 
03-28 15:21:19.197: D/AndEngine(1478): at org.andengine.engine.Engine$UpdateThread.run(Engine.java:820) 
03-28 15:21:19.197: D/AndEngine(1478): TowerOfHanoiActivity.onDestroyResources @(Thread: 'main') 
03-28 15:21:19.197: D/AndEngine(1478): TowerOfHanoiActivity.onGameDestroyed @(Thread: 'main') 
03-28 15:21:22.477: I/Process(1478): Sending signal. PID: 1478 SIG: 9 

我測試我的應用程序在仿真器具有以下設置

enter image description here

請給我一個妥善的解決辦法感謝

回答

0

你的模擬器配置好,嘗試創建一個新的模擬器,並運行此代碼,這可能run.If沒有,那麼應該有一些問題,在編碼

+0

我在測試設備中的應用程序,它做工精細。這意味着他們在仿真器中存在問題 – 2013-03-28 11:18:00

+0

您是否創建了新的avd並對其進行測試 – ravi 2013-03-28 12:02:19

+3

@Kirit,您電腦中的顯卡太舊,所以無法運行。你有一切正確的設置:1.主機GPU模擬。 2.針對Android 4.0.3+,3.爲您的主機,英特爾原子使用系統映像。 這是重複到http://stackoverflow.com/questions/12798089/android-error-in-andengine/12802063#12802063 – 2013-03-29 14:54:18

1

我有同樣的問題,這對我的Windows 7 64位工作。 我的AVD設置爲 設備:(800 x 480 hdpi), 目標:Android 4.4 API級別19, CPU/ABI:ARM(armeabi-v7a)。

  1. 我改變了內存選項爲512 VM堆32
  2. 那麼仿真選項,並選中「使用主機GPU。」
  3. 單擊確定,刷新,清理項目,重新啓動Eclipse。
  4. 運行配置 - > Android的 - >項目 - >運行