首页 > 解决方案 > 如何将多个cmake目标添加到android ndk项目

问题描述

所以我开始了一个android ndk项目,another_lib除了native-lib新项目自带的模块外,还添加了一个新模块,我有一个cmakelists.txt如图所示的文件,内容是:

cmake_minimum_required(VERSION 3.4.1)
add_subdirectory(another_lib)
add_subdirectory(native_lib)

对于每个子目录,我都定义了一个构建目标。然后在我的build.gradle我有

   externalNativeBuild {
        cmake {
            path "src/main/cpp/CMakeLists.txt"
        }
    }

但是,当我构建项目时,它只构建native_lib. 我是否错过了添加我自己的模块来构建的任何内容?

标签: androidandroid-ndk

解决方案


这是android无法创建静态库的问题,除非它被添加到build.gradle文件中,对我来说我需要添加一行:

externalNativeBuild {
    cmake {
        ...
        targets "native-lib", "anotherlib"
    }
}

有关为什么 android studio 无法构建静态库的更多详细信息,请参阅此处 如何使用 CMake 在 Android Studio 3.2 中创建静态库(.a 文件)


推荐阅读