libgdx android failed to start… here is a solution to the problem.
libgdx android failed to start
This is my first time using libgdx and I want to try the default app provided after installing gdx-setup-ui
. When I hit the run button on eclipse it works fine as it shows
[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 }
But unfortunately on the emulator it says, My LibGDX
game has stopped.
These are shown in 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.<init>(AndroidGraphics.java:101)
05-01 17:02:04.996: E/AndroidRuntime(2034): at com.badlogic.gdx.backends.android.AndroidGraphics.<init>(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
Also, I removed
cfg.useGL20 = true in MainActivity.java;
Ok because it keeps giving me errors, I tried to fix it quickly and it doesn’t work. I really need it to be used in an emulator because I don’t own an android device.
Solution
I was able to do this on the Macbook Air by:
- Open the Android Virtual Device Manager (for example, in Eclipse, it is under the Window menu).
- Click Edit for the device you want to use
- Check the Use host GPU box in the dialog box that appears, as shown in the image
Save and try again.
I
guess it depends on whether your computer’s graphics card supports OpenGL 2.0, but I also suspect this is common these days.