我对 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)
我猜想这是由于 sodium_init 是一个 native 函数,并且由于某种原因,gradle 没有将实现安装到手机(或模拟器)上。
任何帮助将不胜感激。
最佳答案
要导入 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 'com.github.joshjdevl.libsodiumjni:libsodium-jni-aar:1.0.7-SNAPSHOT'
关于android - 在 Android Studio 中包含依赖项会产生 UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44282279/