java.lang.UnsatisfiedLinkError:无法加载andenginephysicsbox2dextension- Android

时间:2015-06-24 09:58:41

标签: java android android-studio

我正在尝试在“ Android studio,而不是eclipse ”中使用andengine,并且在运行项目时我遇到此错误。

9442-29483/com.makeinfo.andenginetemplate E/AndEngine﹕ MainActivity.onCreateScene failed. @(Thread: 'GLThread 2726')
java.lang.UnsatisfiedLinkError: Couldn't load andenginephysicsbox2dextension from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.makeinfo.andenginetemplate-1.apk,libraryPath=/data/app-lib/com.makeinfo.andenginetemplate-1]: findLibrary returned null
        at java.lang.Runtime.loadLibrary(Runtime.java:355)
        at java.lang.System.loadLibrary(System.java:525)
        at org.andengine.extension.physics.box2d.PhysicsWorld.<clinit>(PhysicsWorld.java:35)
        at com.makeinfo.andenginetemplate.MainActivity.onCreateScene(MainActivity.java:71)
        at org.andengine.ui.activity.BaseGameActivity$3.onCreateResourcesFinished(BaseGameActivity.java:169)
        at com.makeinfo.andenginetemplate.MainActivity.onCreateResources(MainActivity.java:55)
        at org.andengine.ui.activity.BaseGameActivity.onCreateGame(BaseGameActivity.java:181)
        at org.andengine.ui.activity.BaseGameActivity.onSurfaceCreated(BaseGameActivity.java:110)
        at org.andengine.opengl.view.EngineRenderer.onSurfaceCreated(EngineRenderer.java:80)
        at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1509)
        at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1248)

在某些答案中,有人说验证您的构建路径设置,但我没有得到他的确切含义。我复制并粘贴了库文件夹(其中包含“libandenginephysicsbox2dextension.so”)到我的主项目lib文件夹中。我该怎么做才能解决这个问题。任何帮助或建议将不胜感激!

这是项目文件夹设置:

enter image description here

解决http://geq-i.blogspot.com/2014/02/how-to-setup-andengine-in-android-studio.html

指的是发动机  是指andenginebox2dextension

2 个答案:

答案 0 :(得分:6)

非常简单。按照这个简单的步骤

1)主应用的libs文件夹中创建一个名为“lib”的新文件夹。

2)和EnginePhysicsBox2DExtension / libs 文件夹中复制所有文件夹ie.armabi,armabi-v7a等,然后粘贴到之前创建的“lib”中主应用中的文件夹。

3)现在将“lib”文件夹压缩为“lib.zip”并将其重命名为“lib.jar “即可。 这会将 zip 扩展名更改为 jar

4)最后在 Build.gradle 文件中的依赖项{}下添加一行 - 编译文件('lib.jar')您的主要应用

5)清理并构建项目。

答案 1 :(得分:1)

按照以下结构放置您的jni预编译库(.so文件)

app->src->jniLibs

    ->armeabi->your_libs.so

    ->armeabi-v7a->your_libs.so

    ->x86 ->your_libs.so
  • 应用程序是您的主要应用程序
  • 和jniLibs是自动拾取的默认文件夹(保留此确切文件夹名称)