我正在尝试在“ 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文件夹中。我该怎么做才能解决这个问题。任何帮助或建议将不胜感激!
这是项目文件夹设置:
解决: http://geq-i.blogspot.com/2014/02/how-to-setup-andengine-in-android-studio.html
指的是发动机 是指andenginebox2dextension
答案 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