我尝试将导入的库添加到项目中,并将其链接到另一个库。
以下是我的代码来自CMakeLists.txt的一部分:
add_library(native-lib SHARED ${sources})
add_library(imported-lib SHARED IMPORTED)
set_target_properties(imported-lib PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/PathToLibs/${ANDROID_ABI}/imported-lib.so)
在我的native-lib中,我创建了一个Class的对象,该对象放在import-lib中但应用程序开始崩溃。 (如果我调试或运行应用程序,那么让项目工作正常)
在Gradle控制台中,我得到一个Info:[org.gradle.api.Task] externalNativeBuildDebug:没有构建目标imported-lib,因为没有构建命令
我该如何构建它?
答案 0 :(得分:1)
共享库当前需要手动打包到apk中,一种方法是将jniLibs路由到共享的lib目录。希望以后的版本可以自动打包。这里有一个例子,https://github.com/googlesamples/android-ndk/tree/master/hello-libs,它导入一个共享库,一个静态库;使用app / build.gradle中的脚本将共享库打包到APK:jniLibs.srcDirs = ['../ distribution / gperf / lib']
答案 1 :(得分:0)
对于我来说,解决方法就是build.gradle。 'make'必须在PATH中。
externalNativeBuild {
cmake {
...
arguments "-GAndroid Gradle - Unix Makefiles",
"-DCMAKE_MAKE_PROGRAM=make"
}
}