java.lang.UnsatisfiedLinkError 在使用 AndEngine Physics Extension
java.lang.UnsatisfiedLinkError at using AndEngine Physics Extension
我使用了 Andengine GLES Version1 和 AndenginePhysicsExtension..
我最近将 eclipse 项目转换为 Android Studio 并删除了所有错误,最后 运行 应用程序。
砰的一声,我遇到了这个错误..!!
java.lang.UnsatisfiedLinkError:
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: FATAL EXCEPTION: main
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: Process: com.spec.friskycatch, PID: 1012
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.spec.friskycatch-2/base.apk"],nativeLibraryDirectories=[/data/app/com.spec.friskycatch-2/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libandenginephysicsbox2dextension.so"
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at java.lang.Runtime.loadLibrary(Runtime.java:367)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at java.lang.System.loadLibrary(System.java:1076)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at org.anddev.andengine.extension.physics.box2d.PhysicsWorld.<clinit>(PhysicsWorld.java:35)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.spec.friskycatch.view.game.FriskyGameActivity.onLoadScene(FriskyGameActivity.java:283)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.spec.friskycatch.view.game.FriskyGameActivity.onComplete(FriskyGameActivity.java:263)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.spec.friskycatch.service.sprites.AsyncTaskLoader.onPostExecute(AsyncTaskLoader.java:31)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.spec.friskycatch.service.sprites.AsyncTaskLoader.onPostExecute(AsyncTaskLoader.java:5)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:651)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.os.AsyncTask.-wrap1(AsyncTask.java)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5417)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
如何解决?
已编辑:添加了 build.gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "package"
minSdkVersion 10
targetSdkVersion 23
// Enable MultiDexing: https://developer.android.com/tools/building/multidex.html
multiDexEnabled true
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
sourceSets {
main {
jni.srcDirs = []
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile files('libs/FLurry_3.2.2.jar')
compile files('libs/pixel-perfect-collision.jar')
compile files('libs/twitter4j-core-3.0.3.jar')
compile project(':zip_file')
compile project(':andEngine')
compile project(':downloader_library')
compile project(':viewPagerLibrary')
compile project(':com_google_android_vending_licensing')
compile project(':physics')
compile 'com.android.support:support-v4:23.0.1'
compile 'com.google.android.gms:play-services:8.1.0'
compile 'org.apache.commons:commons-lang3:3.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.google.android.gms:play-services-ads:8.1.0'
compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-gcm:8.1.0'
}
已编辑:
我在这里添加物理扩展的文件层次结构:
但是我没有像下面这样的结构:
|--app:
|--|--src:
|--|--|--main
|--|--|--|--jniLibs
|--|--|--|--|--armeabi
|--|--|--|--|--|—andEnginePhysicsBox2DExtension.so
|--|--|--|--|--X86
|--|--|--|--|--|--andEnginePhysicsBox2DExtension.so
我也在项目中搜索过这个文件andEnginePhysicsBox2DExtension.so
,但找不到。
感谢任何帮助..!!
谢谢
检查此 post:HOW TO SETUP ANDENGINE WITH ANDROID STUDIO。您可能没有正确添加 Andengine 的原生库(libandenginephysicsbox2dextension.so)
从您的 gradle 文件中删除此部分:
sourceSets {
main {
jni.srcDirs = []
}
}
然后复制libandenginephysicsbox2dextension.so到jniLib文件夹。您的文件夹应与此类似:
|--app:
|--|--src:
|--|--|--main
|--|--|--|--jniLibs
|--|--|--|--|--armeabi
|--|--|--|--|--|—andEnginePhysicsBox2DExtension.so
|--|--|--|--|--X86
|--|--|--|--|--|--andEnginePhysicsBox2DExtension.so
...
我使用了 Andengine GLES Version1 和 AndenginePhysicsExtension..
我最近将 eclipse 项目转换为 Android Studio 并删除了所有错误,最后 运行 应用程序。
砰的一声,我遇到了这个错误..!!
java.lang.UnsatisfiedLinkError:
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: FATAL EXCEPTION: main
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: Process: com.spec.friskycatch, PID: 1012
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.spec.friskycatch-2/base.apk"],nativeLibraryDirectories=[/data/app/com.spec.friskycatch-2/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libandenginephysicsbox2dextension.so"
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at java.lang.Runtime.loadLibrary(Runtime.java:367)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at java.lang.System.loadLibrary(System.java:1076)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at org.anddev.andengine.extension.physics.box2d.PhysicsWorld.<clinit>(PhysicsWorld.java:35)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.spec.friskycatch.view.game.FriskyGameActivity.onLoadScene(FriskyGameActivity.java:283)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.spec.friskycatch.view.game.FriskyGameActivity.onComplete(FriskyGameActivity.java:263)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.spec.friskycatch.service.sprites.AsyncTaskLoader.onPostExecute(AsyncTaskLoader.java:31)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.spec.friskycatch.service.sprites.AsyncTaskLoader.onPostExecute(AsyncTaskLoader.java:5)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:651)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.os.AsyncTask.-wrap1(AsyncTask.java)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5417)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
09-29 16:04:31.292 1012-1012/com.spec.friskycatch E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
如何解决?
已编辑:添加了 build.gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "package"
minSdkVersion 10
targetSdkVersion 23
// Enable MultiDexing: https://developer.android.com/tools/building/multidex.html
multiDexEnabled true
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
sourceSets {
main {
jni.srcDirs = []
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile files('libs/FLurry_3.2.2.jar')
compile files('libs/pixel-perfect-collision.jar')
compile files('libs/twitter4j-core-3.0.3.jar')
compile project(':zip_file')
compile project(':andEngine')
compile project(':downloader_library')
compile project(':viewPagerLibrary')
compile project(':com_google_android_vending_licensing')
compile project(':physics')
compile 'com.android.support:support-v4:23.0.1'
compile 'com.google.android.gms:play-services:8.1.0'
compile 'org.apache.commons:commons-lang3:3.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.google.android.gms:play-services-ads:8.1.0'
compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-gcm:8.1.0'
}
已编辑:
我在这里添加物理扩展的文件层次结构:
但是我没有像下面这样的结构:
|--app:
|--|--src:
|--|--|--main
|--|--|--|--jniLibs
|--|--|--|--|--armeabi
|--|--|--|--|--|—andEnginePhysicsBox2DExtension.so
|--|--|--|--|--X86
|--|--|--|--|--|--andEnginePhysicsBox2DExtension.so
我也在项目中搜索过这个文件andEnginePhysicsBox2DExtension.so
,但找不到。
感谢任何帮助..!!
谢谢
检查此 post:HOW TO SETUP ANDENGINE WITH ANDROID STUDIO。您可能没有正确添加 Andengine 的原生库(libandenginephysicsbox2dextension.so)
从您的 gradle 文件中删除此部分:
sourceSets {
main {
jni.srcDirs = []
}
}
然后复制libandenginephysicsbox2dextension.so到jniLib文件夹。您的文件夹应与此类似:
|--app:
|--|--src:
|--|--|--main
|--|--|--|--jniLibs
|--|--|--|--|--armeabi
|--|--|--|--|--|—andEnginePhysicsBox2DExtension.so
|--|--|--|--|--X86
|--|--|--|--|--|--andEnginePhysicsBox2DExtension.so
...