在Jenkins上安装Android NDK遇阻:组件未显示及安装方法求助
为什么NDK、CMake、LLDB不在android list sdk --all的结果里?
旧的android命令属于已被废弃的SDK Tools,Google早在几年前就停止了对它的维护,并且把NDK、CMake、LLDB这类原生开发工具移到了新的SDK组件管理体系中,不再通过旧的android命令提供列表和安装支持。简单说,这个老工具已经“跟不上趟”了,只能处理早期的SDK平台、基础构建工具等组件,管不到这些新的原生开发工具。
如何在Jenkins上安装NDK、CMake和LLDB?
推荐使用Google官方推荐的sdkmanager工具来完成安装,步骤如下:
确认环境中有
sdkmanagersdkmanager是新版SDK命令行工具的核心组件,通常位于Android SDK目录下的cmdline-tools/latest/bin路径中。如果你的Jenkins环境还没有这个工具,需要先下载安装最新的Command-line Tools(可以在Jenkins的全局工具配置中添加Android SDK时自动获取,或者手动下载放置到对应目录)。查看可用的组件列表
执行以下命令查看所有可安装的组件,包括NDK、CMake和LLDB:sdkmanager --list在输出里你会看到类似这样的条目(版本号会随官方更新变化):
ndk;25.2.9519653cmake;3.22.1lldb;15.0.0
执行安装命令
直接指定要安装的组件即可,比如安装某个版本的NDK、CMake和LLDB:sdkmanager --install "ndk;25.2.9519653" "cmake;3.22.1" "lldb;15.0.0"如果你的Jenkins环境没有设置
ANDROID_SDK_ROOT环境变量,可以通过--sdk_root参数指定SDK路径:sdkmanager --sdk_root=/path/to/your/android-sdk --install "ndk;25.2.9519653"Jenkins中的配置细节
- 确保Jenkins运行的用户对Android SDK目录有读写权限,避免安装时出现权限错误。
- 可以在Jenkins的构建步骤中添加“执行shell”(Linux)或“执行批处理命令”(Windows),运行上述
sdkmanager命令。 - 也可以使用Jenkins的Android Plugin,在全局工具配置中添加Android SDK,并勾选需要安装的NDK、CMake等组件,让插件自动处理安装流程。
可选:指定NDK版本
如果你的项目需要特定版本的NDK,只需要在命令中替换对应的版本号即可。另外,如果你习惯使用ndk-bundle(旧的统一NDK目录),也可以安装ndk-bundle组件,但Google现在更推荐使用版本化的NDK,方便多版本共存适配不同项目。
内容的提问来源于stack exchange,提问作者esteban




