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

Using ndk-build and cmake both for different libaries in NDK

我有一个 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"
    }
}

当我尝试构建它时,我收到一条错误消息

More than one externalNativeBuild path specified

有没有办法构建这个,或者我必须只使用 ndk-buildCMake 之一。

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

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