2013-03-28 59 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的 - >项目 - >运行