【发布时间】:2018-11-07 08:46:58
【问题描述】:
我正在开发一个具有两个不同模块依赖项的 android 项目:
- 第三方 jar 依赖项。
- 我自己创建的一个 Android 库依赖项。
这两个模块都使用不同的 C++ 库。 jar 依赖是指它的库/ .so 文件本身。
我只是将它作为 jar 依赖项添加到我的项目中。但是,对于 android 库依赖,我在 libs/armeabi-v7a/ 文件夹中添加了 .so 文件,并在模块级别 build.gradle 文件中添加了它们的引用,如下所示:
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a'
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
如果不将此代码添加到我的 android 库依赖项的 build.gradle 文件中,则 .so 文件不会包含在构建中,并且当我尝试加载 .so 文件时出现错误。另一方面,当我将上述代码添加到我的 android 库依赖项的 build.gradle 中时,当 jar 依赖项尝试引用其自己的 .so 文件时,它会引发错误。
我已经用谷歌搜索了这个问题,但没有找到任何东西。有没有办法明智地引用 jniLibs 目录模块来解决这种冲突?
【问题讨论】:
-
在build.gradle中添加ndk相关块时请分享错误日志
-
@aminography 当我在 build.gradle 中添加 ndk 相关块时,我没有收到任何错误!当我使用 ndk 块运行它时,应用程序会卡在 System.LoadLibrary(".so filename")
-
@aminography 当这行代码实际为第三方.jar依赖执行时。
标签: android android-gradle-plugin build.gradle