【问题标题】:NDK: Is it possible to define the android NDK Version in build.gradle so the native code will use a defined version?NDK:是否可以在 build.gradle 中定义 android NDK 版本,以便本机代码使用定义的版本?
【发布时间】:2020-01-27 11:49:05
【问题描述】:

这是我的问题:

我有一个库存储在 Github。该库包含本机代码和处理 C++ 文件所需的一切。在本地项目/库工作正常,但我想通过JitPack 将该库作为依赖项包含在内。 所以这就是问题开始的地方......

JitPack 似乎使用了最新版本的 NDK,但这不是我的代码可以构建的版本。目前,没有时间更新我的库,但找不到任何解决方案将 NDK 版本定义为项目的依赖项。

我知道 ndk.dir 可以在 local.properties 中定义,但该文件不应该是 repo 的一部分。我想知道是否有办法告诉 JitPack 它应该使用哪个 NDK-Version 来构建依赖项。

我很好奇你们中是否有人已经遇到过类似的问题,以及是否有人知道如何解决它。

我很欣赏任何想法。 :)

【问题讨论】:

    标签: android android-ndk ndk-build jitpack


    【解决方案1】:

    今天,Android Studio 插件支持side-by-side NDK,SDK Manager 可以管理多个版本的NDK。在 gradle.build 中,您设置例如android.ndkVersion '19.2.5345600'。您可能可以通过编程方式触发 SDK Manager 来安装预期的版本。

    请注意,分享local.properties不会有帮助,因为它指向NDK安装目录(取决于PC配置),并且不存储NDK版本。

    【讨论】:

    • 好的,听起来不错,但我需要回到 11b 的版本。据我所知,只有版本 20.0.5594570 可供并排使用。我错过了什么吗?通过尝试您的解决方案,我收到此错误:没有 NDK 版本与请求的版本 19.2.5345600 匹配。本地可用版本:20.0.5594570、20.0.5594570
    • 正如我所写,您必须加倍努力调用 SDK Manager,以便它为您下载缺失的版本。但这与 r11b 无关。您可以依赖与wget https://dl.google.com/android/repository/android-ndk-r11b-linux-x86_64.zip 相同的目录结构并将其解压缩到那里。但是你有一个更大的问题:r11bexternalNativeBuild 不兼容。
    • 顺便说一句,我认为手动下载它们的需要在 3.6 中已修复。如果您尝试构建一个使用您没有的 NDK 的项目(不自动下载,因为没有人喜欢意外的 1GB 下载),IIRC 将会有一个快速修复,您可以单击它。
    • 如果 NFS 共享存储存储 NDK 并由每台机器挂载,则共享 local.properties 会有所帮助。
    猜你喜欢
    • 2011-04-24
    • 2012-06-08
    • 2017-01-23
    • 2016-02-01
    • 2012-06-21
    • 2013-03-23
    • 2011-10-14
    • 2017-07-31
    • 2013-08-25
    相关资源
    最近更新 更多