【发布时间】:2015-02-14 13:36:46
【问题描述】:
我正在尝试将我一直在开发的 libGDX Android 游戏迁移到另一台笔记本电脑。我现在使用的是 1.5.3 版本的 libGDX。当我尝试从 Eclipse 启动我的应用程序时,出现如下所示的错误:
02-11 21:21:35.519: E/Trace(7276): error opening trace file: No such file or directory (2)
02-11 21:21:36.019: E/dalvikvm(7276): Could not find class 'android.support.v4.app.FragmentActivity', referenced from method com.google.android.gms.common.GooglePlayServicesUtil.showErrorDialogFragment
02-11 21:21:36.019: E/dalvikvm(7276): Could not find class 'android.support.v4.app.FragmentActivity', referenced from method com.google.android.gms.common.GooglePlayServicesUtil.showErrorDialogFragment
02-11 21:21:36.820: E/AndroidRuntime(7276): FATAL EXCEPTION: GLThread 11304
02-11 21:21:36.820: E/AndroidRuntime(7276): java.lang.UnsatisfiedLinkError: Native method not found: com.badlogic.gdx.backends.android.AndroidGL20.glGenTexture:()I
02-11 21:21:36.820: E/AndroidRuntime(7276): at com.badlogic.gdx.backends.android.AndroidGL20.glGenTexture(Native Method)
02-11 21:21:36.820: E/AndroidRuntime(7276): at com.badlogic.gdx.graphics.GLTexture.createGLHandle(GLTexture.java:197)
02-11 21:21:36.820: E/AndroidRuntime(7276): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:123)
02-11 21:21:36.820: E/AndroidRuntime(7276): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:103)
02-11 21:21:36.820: E/AndroidRuntime(7276): at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:95)
02-11 21:21:36.820: E/AndroidRuntime(7276): at com.mypkg.mygame.screens.MainMenu.show(MainMenu.java:41)
02-11 21:21:36.820: E/AndroidRuntime(7276): at com.badlogic.gdx.Game.setScreen(Game.java:61)
02-11 21:21:36.820: E/AndroidRuntime(7276): at com.mypkg.mygame.mygame.create(mygame.java:20)
02-11 21:21:36.820: E/AndroidRuntime(7276): at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:241)
02-11 21:21:36.820: E/AndroidRuntime(7276): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1505)
02-11 21:21:36.820: E/AndroidRuntime(7276): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
这是产生此错误的代码。
public void show () {
FileHandle gdxfile = Gdx.files.internal("data/title.png");
Texture t = new Texture(gdxfile); // this is line where my app crashes
相同的代码在我的另一台笔记本电脑上运行良好。 任何帮助表示赞赏。
【问题讨论】:
-
上面写着
Native method not found,那么你把libgdx的so放在你的apk里了吗,它支持你的ABI吗? -
这是一个很好的问题,我如何判断我是否将 libgdx 的 co 放入我的 apk 中?不知道什么是ABI?你可以解释吗?谢谢!
-
我不知道 libgdx,但是使用 JNI 的库应该使用不同 CPU 的 .so 文件构建(本机 CPU ABI)。 .so 文件应打包到您应用的 apk 文件中,以便 Android 可以为您的应用加载库。
-
最后一次提交说“...仍然需要添加到 JNI”github.com/libgdx/libgdx/commits/master/backends/… 我如何将它添加到 JNI?