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

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

我正在尝试包括 https://github.com/GerardSoleCa/Robosodium在我的 android 工作室项目中。我正在运行 Android Studio 1.4.1

我用编译后的 .so 文件创建了一个 jniLibs 文件夹。我在我的主要 Activity 中初始化了库,如下所示:

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'
}

最佳答案

试着改变这个:

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

为此:

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

关于android - 将.so文件添加到android studio时出现UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563962/

相关文章:

android - 如何在android中实现调用键盘事件监听器

java - 如何在另一个线程上运行 RxJava 观察者

android - 该项目可能正在使用不包含方法 'compileSdkVersion()' 的 Gradle 版本

android - 自定义 ActionBar 高度和 ActionBar Tab 高度

android - 使用 TObject 后代调用 std::vector::push_back 时出现 C++ Builder bccarm 错误

android - 编译时的 OpenGL ES 版本

android - 语句无效 'AVPacket'

java - 构建 apk(libgdx) 时 android studio 出错

android - 将方法字体颜色更改回原来的颜色(来自 Android Studio 更新)

android - boost C++ 和 Android 3