【问题标题】:java.lang.UnsatisfiedLinkError: Native method not found: com.badlogic.gdx.backends.android.AndroidGL20.glGenTexture:()java.lang.UnsatisfiedLinkError:找不到本机方法:com.badlogic.gdx.backends.android.AndroidGL20.glGenTexture:()
【发布时间】:2015-02-14 13:36:46
【问题描述】:

我正在尝试将我一直在开发的 libGDX And​​roid 游戏迁移到另一台笔记本电脑。我现在使用的是 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?

标签: java android libgdx


【解决方案1】:

我将我的项目迁移到 Android Studio,按照一些说明进行操作,然后 BANG!我的应用程序没有运行时错误。我不明白为什么,但我怀疑它与gradle有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-25
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多