使用AndEngine Physics Extension时的java.lang.UnsatisfiedLinkError

时间:2015-09-29 10:39:58

标签: android eclipse android-studio andengine

我使用过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$1.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,但找不到它。

任何帮助表示赞赏.. !!

由于

1 个答案:

答案 0 :(得分:1)

查看此帖子: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
...