对NDK中的不同库使用ndk-build和cmake

时间:2018-04-06 05:57:32

标签: android c cmake android-ndk ndk-build

我有一个包含我的本机代码的android库,我将该库导入我的应用程序。我已经在这个库中编写了一些本机C / C ++代码,并使用ndk-build设置了编译。这是我添加到我的库的gradle文件中的代码:

externalNativeBuild {
    ndkBuild {
        path 'src/main/jni/Android.mk'
    }
}

这一切都很好。现在,我想要包含一个外部本机C / C ++库,我有关于如何使用CMake进行设置的说明。我编写了代码以将此外部库包含到我的顶级CMakeLists.txt中,并将其包含在我的gradle中,看起来不像

externalNativeBuild {
    ndkBuild {
        path 'src/main/jni/Android.mk'
    }

    cmake {
        // Provides a relative path to your CMake build script.
        path "CMakeLists.txt"
    }
}

当我尝试构建它时,我收到错误说

  

指定了多个externalNativeBuild路径

有没有办法构建这个,或者我只能使用ndk-buildCMake中的一个。

1 个答案:

答案 0 :(得分:0)

cmake和gnu make(构成ndk-build的基础)都支持自定义目标和外部工具,因此您可以从Android.mk启动您的cmake部分,反之亦然。

但这对Android Studio集成没有帮助。要为两个本机子项目提供完全IDE支持,您可以重写一个或另一个以使用相同的外部本机构建,或者从应用程序模块中提取依赖于其中一个的部分,从应用程序模块到库模块。