libgdx android在启动时失败

这是我第一次使用libgdx,我想尝试在安装gdx-setup-ui之后提供的默认应用程序。 当我点击eclipse上的运行按钮时,它运行正常

 [2014-05-01 21:40:14 - my-gdx-game-android] Uploading my-gdx-game-android.apk onto device 'emulator-5554' [2014-05-01 21:40:15 - my-gdx-game-android] Installing my-gdx-game-android.apk... [2014-05-01 21:40:16 - my-gdx-game-android] Success! [2014-05-01 21:40:16 - my-gdx-game-android] Starting activity com.me.mygdxgame.MainActivity on device emulator-5554 [2014-05-01 21:40:16 - my-gdx-game-android] ActivityManager: WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a security risk. Please fix. [2014-05-01 21:40:16 - my-gdx-game-android] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.me.mygdxgame/.MainActivity } 

但不幸的是,在仿真器上,我的LibGDX游戏已停止。

这些显示在logCat中:

 05-01 17:02:04.936: D/dalvikvm(2034): Trying to load lib /data/app-lib/com.me.mygdxgame-1/libgdx.so 0xb103cb78 05-01 17:02:04.936: D/dalvikvm(2034): Added shared lib /data/app-lib/com.me.mygdxgame-1/libgdx.so 0xb103cb78 05-01 17:02:04.936: D/dalvikvm(2034): No JNI_OnLoad found in /data/app-lib/com.me.mygdxgame-1/libgdx.so 0xb103cb78, skipping init 05-01 17:02:04.936: D/AndroidRuntime(2034): Shutting down VM 05-01 17:02:04.936: W/dalvikvm(2034): threadid=1: thread exiting with uncaught exception (group=0xb0d34b20) 05-01 17:02:04.996: E/AndroidRuntime(2034): FATAL EXCEPTION: main 05-01 17:02:04.996: E/AndroidRuntime(2034): Process: com.me.mygdxgame, PID: 2034 05-01 17:02:04.996: E/AndroidRuntime(2034): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.me.mygdxgame/com.me.mygdxgame.MainActivity}: com.badlogic.gdx.utils.GdxRuntimeException: Libgdx requires OpenGL ES 2.0 05-01 17:02:04.996: E/AndroidRuntime(2034): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 05-01 17:02:04.996: E/AndroidRuntime(2034): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 05-01 17:02:04.996: E/AndroidRuntime(2034): at android.app.ActivityThread.access$800(ActivityThread.java:135) 05-01 17:02:04.996: E/AndroidRuntime(2034): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 05-01 17:02:04.996: E/AndroidRuntime(2034): at android.os.Handler.dispatchMessage(Handler.java:102) 05-01 17:02:04.996: E/AndroidRuntime(2034): at android.os.Looper.loop(Looper.java:136) 05-01 17:02:04.996: E/AndroidRuntime(2034): at android.app.ActivityThread.main(ActivityThread.java:5017) 05-01 17:02:04.996: E/AndroidRuntime(2034): at java.lang.reflect.Method.invokeNative(Native Method) 05-01 17:02:04.996: E/AndroidRuntime(2034): at java.lang.reflect.Method.invoke(Method.java:515) 05-01 17:02:04.996: E/AndroidRuntime(2034): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 05-01 17:02:04.996: E/AndroidRuntime(2034): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 05-01 17:02:04.996: E/AndroidRuntime(2034): at dalvik.system.NativeStart.main(Native Method) 05-01 17:02:04.996: E/AndroidRuntime(2034): Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Libgdx requires OpenGL ES 2.0 05-01 17:02:04.996: E/AndroidRuntime(2034): at com.badlogic.gdx.backends.android.AndroidGraphics.createGLSurfaceView(AndroidGraphics.java:121) 05-01 17:02:04.996: E/AndroidRuntime(2034): at com.badlogic.gdx.backends.android.AndroidGraphics.(AndroidGraphics.java:101) 05-01 17:02:04.996: E/AndroidRuntime(2034): at com.badlogic.gdx.backends.android.AndroidGraphics.(AndroidGraphics.java:94) 05-01 17:02:04.996: E/AndroidRuntime(2034): at com.badlogic.gdx.backends.android.AndroidApplication.init(AndroidApplication.java:130) 05-01 17:02:04.996: E/AndroidRuntime(2034): at com.badlogic.gdx.backends.android.AndroidApplication.initialize(AndroidApplication.java:96) 05-01 17:02:04.996: E/AndroidRuntime(2034): at com.me.mygdxgame.MainActivity.onCreate(MainActivity.java:15) 05-01 17:02:04.996: E/AndroidRuntime(2034): at android.app.Activity.performCreate(Activity.java:5231) 05-01 17:02:04.996: E/AndroidRuntime(2034): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 05-01 17:02:04.996: E/AndroidRuntime(2034): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 05-01 17:02:04.996: E/AndroidRuntime(2034): ... 11 more 

另外,我删除了cfg.useGL20 = true;MainActivity.java因为它一直给我错误,我试图快速修复它,它不起作用。 我真的需要它在模拟器中使用,因为我没有在Android设备上拥有。

我能够通过以下方式在Macbook Air上完成这项工作:

  1. 打开Android虚拟设备管理器( 例如在Eclipse中,这是在Window菜单下
  2. 单击要使用的设备的编辑
  3. 在结果对话框中选中“使用主机GPU”框,如图所示

单击“使用主机GPU”

保存并重试。

我猜这取决于你的计算机的显卡支持OpenGL2.0,但我也怀疑这是现在很常见的。