导入的库不在Android Studio 2.2中构建

时间:2016-09-28 11:14:19

标签: android android-studio android-ndk cmake

我尝试将导入的库添加到项目中,并将其链接到另一个库。

以下是我的代码来自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,因为没有构建命令

我该如何构建它?

2 个答案:

答案 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"
    }
}