【问题标题】:Integrating CMake and ndk-build external libraries into an Android Studio project将 CMake 和 ndk-build 外部库集成到 Android Studio 项目中
【发布时间】:2017-04-26 22:46:08
【问题描述】:

我有两个现有的本地库,我想将它们集成到一个 Android 项目中。一个有一个工作的 Android.mk 文件,另一个有一个工作的 CMakeList.txt 文件。有没有一种干净的方法可以将两者都链接到 Gradle?

使用 CMake 的 ExternalProject[1] 是我目前唯一的想法。

[1]https://cmake.org/cmake/help/v3.0/module/ExternalProject.html

【问题讨论】:

标签: android gradle android-ndk cmake


【解决方案1】:

我得到的解决方案是添加一个额外的 Gradle 模块来构建 ndk-build 项目。在 Gradle 术语中,该项目将成为一个多项目/多模块构建,并在此处进一步讨论 [1]。我还能够在 Gradle 中表达依赖关系,并且项目构建没有问题。

我最初使用 CMake 的 ExternalBuild 的想法在 Gradle 下失败了,但在从命令行调用 CMake 时构建良好。这可能与我缺乏 Gradle 和 CMake 知识有关。

[1]https://speakerdeck.com/bmuschko/state-of-the-art-gradle-multi-module-builds

【讨论】:

  • 你能分享一个例子吗?我想在我的项目中完成同样的事情。
  • 不幸的是,我认为我没有坚持这一点。我使用的库之一是 libusb,我在 Android 中遇到了障碍,获得了从本机库访问 USB 设备的权限。我最终使用了 Android 的 USB API,这消除了对本机库的需求。
【解决方案2】:

我可能有你需要的东西。有一个全部 c++ 示例涉及 no JAVA UI 这实际上是一件大事,因为现在您的 main(入口点)位于 c++ 文件中 - 您可以执行 OOP 并依赖在 3rd 方库上没有太多麻烦。

查看我的仓库:https://github.com/skanti/Android-Manual-Build-Command-Line

【讨论】:

    猜你喜欢
    • 2017-01-28
    • 2021-02-06
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 2013-05-25
    • 1970-01-01
    相关资源
    最近更新 更多