我有一个常规的android项目。我想引用另一个由简单对象(.so)和cpp jni文件组成的模块。我创建了一个模块并将其添加到我的项目中。我有一个cmakefile并从我的gradle项目中引用它。
当我将SO和cpp文件直接包含到主项目中时,它可以正常工作。我基本上遵循了本教程 Add C++ to Anrdoid
现在我想从主应用程序类间接地从不同的模块引用我的C ++ .so库。一切都构建和编译,但我收到以下错误。
nativeLibraryDirectories = [/ data / app / com.example.jniapp01.jniapp01-2 / lib / x86,/ vendor / lib,/ system / lib]]]找不到“libnative-lib.so”
我觉得有一个复制步骤,当在模拟器或apk等上运行时将其置于正确的位置...但我不知道在何处或如何设置它。或者,当应用程序运行时,我是否需要为“.so”设置环境变量?
任何建议。我一直在捅这个太久了......
Android Studio 2.3.3 Gradle 2.3.3
更新: 我没有具体解决这个问题。但是,我认为这与从java代码引用本机库的中间类的特定命名约定有关。我有这么多的库和方法,手工编码需要花费很多时间。我相信有一种方法可以从现有的“.so”lib自动创建,但我试图从另一个示例项目中获取它。这里有更多的信息可能有帮助... here让我知道你的想法。 “C ++方法还将包含您的命名空间(例如com.domain.your)和类名(例如YourActivity),它看起来像”