【问题标题】:Add reference to CMake project in Android Studio在 Android Studio 中添加对 CMake 项目的引用
【发布时间】:2015-11-24 00:13:53
【问题描述】:

在我的特殊情况下,我在 C++11 中实现了一个使用 CMake 的跨平台项目。我最初设计这个项目是为了在 PC(WindowsUnix)上工作,但现在我意识到我也可以在移动平台上使用它,而无需重新实现业务逻辑在每个平台上。该项目使用标准库:BoostPocoOpenSSLProtobuf

经过几次搜索,我得出的结论是,这甚至不是在 Android 中将原生代码和托管代码放在一起的常用模式。

  1. 是否可以将 Android Studio 的 Gradle 项目中的引用添加到使用 CMake 的原生项目中?

  2. 如果我在命令行中编译所有内容(假设我不使用Android Studio),NDK能否以简单的方式采用该项目?

  3. 如果可能,是否推荐?

【问题讨论】:

    标签: android-studio gradle android-ndk cmake


    【解决方案1】:

    是否可以在 Android Studio 的 Gradle 项目中将引用添加到使用 CMake 的本机项目?

    由于谷歌宣布Android Studio 2.2自带cmake插件,所以可以将CMake项目引用到android项目。

    如果我在命令行中编译所有内容(假设我不使用Android Studio),NDK能否以简单的方式采用该项目?

    根据我的经验,我以单独的方式编译 NDK,然后链接要在 android 项目中使用的静态/共享库(.so 文件)。我在使用 mupdf here 开发 PDF Reader 时使用了 NDK

    希望这会有所帮助。

    【讨论】:

    • 您博客的链接已损坏
    【解决方案2】:

    android studio 2.2 可以实现,主要是 gradle 的 android 插件使之成为可能。你可以看一些例子: https://github.com/googlesamples/android-ndk/tree/master-cmake

    android studio 直接读入你的 cmake 脚本——没有什么能像桌面系统那样为其本地 IDE(Visual Studio 或 XCode)生成项目文件;因此您可能需要修改现有的 cmake 文件才能最终使其适用于 android studio。

    只要您构建到正确的 APK,命令行或 IDE 都没有太大关系。如果您打算发布源代码,使用 IDE 准备好您的项目会很有吸引力。

    【讨论】:

      【解决方案3】:

      请参阅CMaker_Boost,在配置时使用 CMake 构建 Boost。现在在 Linux 和 Android、gcc 和 clang 上进行了测试。这可以包含在 Android Studio 的 gradle 项目中。我希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-06
        • 1970-01-01
        • 1970-01-01
        • 2021-12-06
        • 2012-10-11
        • 1970-01-01
        • 2015-05-16
        相关资源
        最近更新 更多