NDK:是否可以在build.gradle中定义Android NDK版本,以便原生代码使用指定版本?

7
这是我的问题:
我在Github上存储了一个库。该库包含处理C++文件所需的本地代码和所有其他内容。在本地,项目/库运行良好,但我想通过JitPack将该库作为依赖项包含进来。
这就是问题的起点...
JitPack似乎使用最新版本的NDK,但这不是我的代码可以构建的版本。目前,没有时间更新我的库,但找不到任何定义NDK版本作为项目依赖项的解决方案。
我知道可以在local.properties中定义ndk.dir,但该文件不应成为repo的一部分。我想知道是否有一种方法告诉JitPack应使用哪个NDK版本来构建依赖项。
我很想知道是否有人已经遇到过类似的问题,以及是否有任何想法如何解决它。
感谢任何想法。 :)
2个回答

11

现在,Android Studio插件支持并排NDK,SDK Manager可以管理多个NDK版本。在gradle.build中,您可以设置例如android.ndkVersion '19.2.5345600'。您可能可以以编程方式触发SDK Manager来安装所需的版本。

请注意,共享local.properties是无效的,因为它指向已安装的NDK目录(这取决于计算机配置),并且不存储NDK版本。


好的,听起来不错,但我需要版本回到11b。据我所见,只有Version 20.0.5594570可用于并排。我有什么遗漏吗?尝试您的解决方案时,我得到了以下错误:没有与请求的版本19.2.5345600匹配的NDK版本。本地可用的版本:20.0.5594570,20.0.5594570。 - Thomas Cirksena
1
正如我所写的,您必须额外努力调用SDK管理器,以便它为您下载缺失的版本。但是对于r11b来说这并不重要。您可以依赖相同的目录结构来wget https://dl.google.com/android/repository/android-ndk-r11b-linux-x86_64.zip并在那里解压缩它。但是您有一个更大的问题:r11bexternalNativeBuild不兼容。 - Alex Cohn
1
顺便说一下,我认为手动下载的需求在3.6中已经解决了。如果您尝试构建一个使用您没有的NDK的项目,将会有一个快速修复选项可供点击(不会自动下载,因为没有人喜欢意外的1GB下载)。 - Dan Albert
如果一个NFS共享存储存储了NDK并被每台机器挂载,那么共享local.properties是有帮助的。 - daparic

0
警告:对 ANDROID_NDK_HOME 的支持已被弃用,并将来会被移除。请改用 build.gradle 中的 android.ndkVersion。 对 ANDROID_NDK_HOME 的支持已被弃用,并将来会被移除。
> Use android.ndkVersion in build.gradle instead.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接