将.so文件添加到android studio时出现UnsatisfiedLinkError

时间:2015-11-06 09:54:29

标签: android android-studio android-ndk java-native-interface

我正在尝试将https://github.com/GerardSoleCa/Robosodium包含在我的android studio项目中。我正在运行Android studio 1.4.1

我使用已编译的.so文件创建了一个jniLibs文件夹。我在我的主要活动中初始化了这个库:

static {
    System.loadLibrary("libkaliumjni");
}

当我运行项目时,我得到了这个:

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/be.example.libtest-1/base.apk"],nativeLibraryDirectories=[/data/app/be.example.libtest-1/lib/x86, /vendor/lib, /system/lib]]] couldn't find "liblibkaliumjni.so"

我的文件夹结构是:

enter image description here

有人可以帮我这个吗?

编辑:

这是我的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "be.example.libtest"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
}

1 个答案:

答案 0 :(得分:3)

尝试改变这一点:

static {
    System.loadLibrary("libkaliumjni");
}

到此:

static {
    System.loadLibrary("kaliumjni");
}