在Android Studio中包含依赖项会产生UnsatisfiedLinkError

时间:2017-05-31 10:28:37

标签: android gradle android-gradle libsodium

我是Android编程的新手,我正在尝试使用libsodium-jni库来完成一些基本的加密任务。在Android Studio中我添加了libsodium-jni-aar作为库依赖项,我可以看到这通过添加修改我的build.gradle文件:

compile 'com.github.joshjdevl.libsodiumjni:libsodium-jni-aar:1.0.6'

这个库中的许多函数运行正常,但是当我使用Sodium.sodium_init()函数时,我得到了

java.lang.UnsatisfiedLinkError: No implementation found for int org.libsodium.jni.SodiumJNI.sodium_init() (tried Java_org_libsodium_jni_SodiumJNI_sodium_1init and Java_org_libsodium_jni_SodiumJNI_sodium_1init__)
                                                                    at org.libsodium.jni.SodiumJNI.sodium_init(Native Method)

我猜这是因为sus_init是一个本机函数,并且由于某种原因,实现没有通过gradle安装到手机(或模拟器)。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

要导入Sonatype存储库,您需要添加此

maven {
    url "https://oss.sonatype.org/content/repositories/snapshots/"
}

allprojects对象中的项目build.gradle文件,该文件应该会产生与此类似的内容:

allprojects {
    repositories {
        jcenter()
        maven {
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
        }
    }   
}

然后,您可以在app build.gradle文件中添加compile语句

compile 'com.github.joshjdevl.libsodiumjni:libsodium-jni-aar:1.0.7-SNAPSHOT'