libgdx在模拟器中运行时在helloworld应用程序上抛出异常

时间:2012-02-04 18:29:12

标签: java android libgdx

我已经按照http://www.youtube.com/watch?v=vLx_72qxK_0&feature=player_embedded上的教程创建了一个带有libgdx库的简单应用程序,该应用程序使用红色背景的应用程序。

当我将它作为一个独立的桌面应用程序运行时,这可以正常工作,但是当我运行-android版本时,抛出下面的异常并且应用程序无法启动。

02-04 18:25:27.536: W/dalvikvm(456): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/badlogic/gdx/backends/android/AndroidApplication;
02-04 18:25:27.536: W/dalvikvm(456): Class init failed in newInstance call (Lorg/gravity/main/GameAndroidActivity;)
02-04 18:25:27.567: D/AndroidRuntime(456): Shutting down VM
02-04 18:25:27.567: W/dalvikvm(456): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-04 18:25:27.676: E/AndroidRuntime(456): FATAL EXCEPTION: main
02-04 18:25:27.676: E/AndroidRuntime(456): java.lang.ExceptionInInitializerError
02-04 18:25:27.676: E/AndroidRuntime(456):  at java.lang.Class.newInstanceImpl(Native Method)
02-04 18:25:27.676: E/AndroidRuntime(456):  at java.lang.Class.newInstance(Class.java:1409)
02-04 18:25:27.676: E/AndroidRuntime(456):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
02-04 18:25:27.676: E/AndroidRuntime(456):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
02-04 18:25:27.676: E/AndroidRuntime(456):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
02-04 18:25:27.676: E/AndroidRuntime(456):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-04 18:25:27.676: E/AndroidRuntime(456):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
02-04 18:25:27.676: E/AndroidRuntime(456):  at android.os.Handler.dispatchMessage(Handler.java:99)
02-04 18:25:27.676: E/AndroidRuntime(456):  at android.os.Looper.loop(Looper.java:123)
02-04 18:25:27.676: E/AndroidRuntime(456):  at android.app.ActivityThread.main(ActivityThread.java:3683)
02-04 18:25:27.676: E/AndroidRuntime(456):  at java.lang.reflect.Method.invokeNative(Native Method)
02-04 18:25:27.676: E/AndroidRuntime(456):  at java.lang.reflect.Method.invoke(Method.java:507)
02-04 18:25:27.676: E/AndroidRuntime(456):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-04 18:25:27.676: E/AndroidRuntime(456):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-04 18:25:27.676: E/AndroidRuntime(456):  at dalvik.system.NativeStart.main(Native Method)
02-04 18:25:27.676: E/AndroidRuntime(456): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load gdx: findLibrary returned null
02-04 18:25:27.676: E/AndroidRuntime(456):  at java.lang.Runtime.loadLibrary(Runtime.java:429)
02-04 18:25:27.676: E/AndroidRuntime(456):  at java.lang.System.loadLibrary(System.java:554)
02-04 18:25:27.676: E/AndroidRuntime(456):  at com.badlogic.gdx.utils.GdxNativesLoader.load(GdxNativesLoader.java:111)
02-04 18:25:27.676: E/AndroidRuntime(456):  at com.badlogic.gdx.backends.android.AndroidApplication.<clinit>(AndroidApplication.java:58)
02-04 18:25:27.676: E/AndroidRuntime(456):  ... 15 more

有没有人对这个图书馆有任何经验?

3 个答案:

答案 0 :(得分:6)

通过确保armeabi和armeabi-v7a文件夹位于android项目的/ libs中来修复此问题。

答案 1 :(得分:2)

我发现问题是由于尝试使用intel atom x86图像在Android AVD上运行引起的。我相信你必须使用ARM镜像。

答案 2 :(得分:0)

资料来源:How to import the x86 folders for android(2013年7月)

开发人员告诉我们,他们会在最新的夜间提供丢失的x86文件夹,这样您就不会被迫使用ARM模拟器。

因此请在下面下载最新的每晚,并将x86文件夹复制到项目/图书馆项目的libs/文件夹中(您还可以在其中找到armeabi和{{1} }文件夹)

The latest nightly for libgdx containing the x86 folder to put in libs/

这解决了我的问题。