我开发了一个Libgdx应用程序,并在我的三星Galaxy S3(4.1.2)上进行了测试,它的工作效果非常好。我试图在Galaxy Grand(4.1.2)上测试它,但它失败了。在logcat中,我发现了以下内容:
caused by com.badlogic.gdx.utils.GdxRuntimeException couldn't load shared library 'gdx' for target: Linux, 32-bit
只有在更改设备时才会发生这种情况,因此任何想法是什么原因?!
完整的logcat:
05-22 20:25:01.745: E/AndroidRuntime(12725): FATAL EXCEPTION: main
05-22 20:25:01.745: E/AndroidRuntime(12725): java.lang.ExceptionInInitializerError
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.Class.newInstanceImpl(Native Method)
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.Class.newInstance(Class.java:1319)
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2025)
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.ActivityThread.access$700(ActivityThread.java:140)
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.os.Handler.dispatchMessage(Handler.java:99)
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.os.Looper.loop(Looper.java:137)
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.ActivityThread.main(ActivityThread.java:4935)
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.reflect.Method.invokeNative(Native Method)
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.reflect.Method.invoke(Method.java:511)
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
05-22 20:25:01.745: E/AndroidRuntime(12725): at dalvik.system.NativeStart.main(Native Method)
05-22 20:25:01.745: E/AndroidRuntime(12725): Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load shared library 'gdx' for target: Linux, 32-bit
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:104)
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.badlogic.gdx.utils.GdxNativesLoader.load(GdxNativesLoader.java:34)
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.badlogic.gdx.backends.android.AndroidApplication.<clinit>(AndroidApplication.java:61)
05-22 20:25:01.745: E/AndroidRuntime(12725): ... 15 more
05-22 20:25:01.745: E/AndroidRuntime(12725): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load gdx: findLibrary returned null
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.Runtime.loadLibrary(Runtime.java:365)
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.System.loadLibrary(System.java:535)
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:100)
05-22 20:25:01.745: E/AndroidRuntime(12725): ... 17 more
答案 0 :(得分:5)
当我尝试将libGDX生成的项目加载到Android Studio时,我收到与原始帖子完全相同的错误:
> "caused by com.badlogic.gdx.utils.GdxRuntimeException couldn't load
> shared library 'gdx' for target: Linux, 32-bit"
经过一些研究(特别是www.badlogicgames.com/forum/viewtopic.php?f=11&t=9097),我发现了 evilEntity 这个优秀的教程,展示了如何导入libGDX项目进入Android Studio:
我不能逐字重复本教程,因为它既是文本又是截图,但是按照这些步骤允许我只使用教程中列出的修改导入生成的项目:
请注意我在这里重复evilentity的答案,因为它位于不同网站上的不同论坛中,并且Stack溢出中有大量注释表明简单地将链接发布到其他网站上的解决方案是不好的。强>
请注意我在这里包含这个答案,因为omarsafwany的问题中包含的错误信息对我来说是关键点,而不是围绕他的问题的具体情况。希望没关系。
详细说明:
答案 1 :(得分:3)
完全从设备中卸载我的应用并再次部署。这解决了问题
答案 2 :(得分:2)
我弄清楚问题是什么。它从一开始只在三星Galaxy S3上工作,加载了一些C ++文件,当我编辑其中一些文件时,我在尝试测试时没有使用ndk.So构建在另一个手机上,新的修改没有应用。 我构建了它们,应用程序运行成功。