在我的应用程序中,我需要使用 Scrypt 库,但有一个问题:scrypt-1.4.0.jar
取自 Maven Central 拒绝在 x86 架构上工作。
在此线程中找到了解决方案的提示:https ://groups.google.com/forum/#!topic/bitcoinj/B0kOqUVIW24 ,特别是:
是的,Maven Central 上的 scrypt jar 包含本机代码 (lib/*.so)。他们真的应该把它放到一个单独的工件中)-:
无论如何,我正在使用
<excludeJarResources>
<excludeJarResource>.*\.jar$</excludeJarResource>
</excludeJarResources>
在我的 android-maven-plugin 配置中。你需要为 Gradle 找到类似的东西。
我使用 Adroid Studio,但不知道如何在 Gradle 中获得相同的结果。我发现的唯一“解决方案”是完全排除 Scrypt 库:
dependencies {
compile('org.bitcoinj:bitcoinj-core:0.12.2') {
exclude module: 'scrypt'
}
}
但当然,这只有在我需要在我的应用程序中使用 Scrypt 时才有效。这是来自同一线程的上述代码的注释:
Andreas 的代码只排除了 JAR 资源,即动态库,这意味着 scrypt 库将退回到纯 Java 实现(慢得多)。
我怎样才能在 Gradle 中达到同样的效果?或者,有人建议用 NDK 编译 Scrypt 本机库,但我不知道该怎么做。