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

标签 android gradle android-gradle-plugin 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)

我猜想这是由于 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/

相关文章:

android - Gradle 模块类型

android - ERROR : Failed to resolve: com. android.support.constraint :constraintlayout:1. 1.3 在项目结构对话框中显示受影响的模块:app

react-native - 如何升级 react-native gradle 版本

更新SDK后Android项目无法构建

android - 图片上传不适用于 WKWebView,但适用于 SFSafariViewController

android - 获取 ImageView 的位置

java - IntelliJ无法在Scala中识别TypeTag

java - 如何访问 Gradle 复合构建中所有包含构建的源目录集合?

java - android webview显示空白页面

gradle - 检索应用的 Gradle 插件 key