在加载C库(mylib.so,其中已经包含JNI API)的Android项目中,我有一个导入预构建库的CMakeLists.txt,如文档所示:
cmake_minimum_required(VERSION 3.10.2)
project(ImportMyLib)
set(MYLIB_PREBUILT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/build/arm64/src")
add_library(mylib SHARED IMPORTED)
set_target_properties(mylib
PROPERTIES IMPORTED_LOCATION
"${MYLIB_PREBUILT_PATH}/libmylib.so")
我确实打印了${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/build/arm64/src
,并检查了${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/build/arm64/src/libmylib.so
是否存在。
但是,libmylib.so
没有包含在生成的.aar
中,我不明白为什么。
我的build.gradle
确实包含上面的CMakeLists.txt,如下所示:
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
}
}
这与this question类似,只是似乎需要添加一个IMPORTED
目标(因为ExternalProject_Add
),而这里我尝试导入一个已经构建的库。
我错过了什么?
1条答案
按热度按时间yiytaume1#
您可以显式请求包含
libmylib.so
: