【发布时间】:2017-08-05 10:18:32
【问题描述】:
我有一个带有 2 个模块的 Android Studio (2.3) 项目,使用 CMake 编写本机代码。
Project
--> Module1 (app): java + native JNI-wrapper, linking to libnative.so
--> Module2 (libnative): native c++ code, producing libnative.so
将libnative.so(由Module2 构建)链接到Module1 中的JNI 包装器的首选方法是什么?我目前使用...
Module1-CMakeLists.txt:
add_library( native SHARED IMPORTED )
set_target_properties( jniwrapper PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../libnative/build/intermediates/cmake/${BUILD_TYPE}/obj/${ANDROID_ABI}/libnative.so )
...BUILD_TYPE 在 Module1 的 build.gradle 中设置,具体取决于构建类型。
如果我在构建完整项目之前在 AS 中使用“Make Module 'Module2'”,则此方法有效。但是,从 gradle 的构建文件夹层次结构中获取库似乎相当不雅。
替代方法似乎是指示 Module2 的 CMakeLists.txt 将文件安装到 Module1 的 lib 目录并从那里导入。但是 CMake 似乎忽略了install 命令。
(我知道我可以将模块放在一棵树下。)
谢谢!
【问题讨论】:
标签: android android-studio android-ndk cmake