Azure Pipeline中Android制品构建失败:NDK未安装问题求助
解决Azure Pipeline中NDK未安装导致的Android构建失败问题
看了你的报错信息和YAML配置,问题很明确:你用的macOS-10.14虚拟机镜像默认没有预装构建项目所需的NDK,而你的Gradle任务里有依赖NDK的extractLiasDevReleaseNativeSymbolTables任务,所以直接失败了。
这里给你两种可靠的解决方法,优先推荐第一种:
方法一:添加NDK自动安装任务
在你的Gradle构建步骤之前,加入AndroidSDKInstaller@0任务,让它自动安装项目所需的NDK版本。修改后的YAML配置如下:
trigger: develop pool: vmImage: 'macOS-10.14' steps: # 新增:安装NDK - task: AndroidSDKInstaller@0 inputs: # 设为auto会自动读取项目build.gradle或local.properties中的ndkVersion配置 ndkVersion: 'auto' # 必须同意SDK许可协议才能自动安装 acceptLicense: true - task: Gradle@2 inputs: workingDirectory: '' gradleWrapperFile: 'gradlew' gradleOptions: '-Xmx3072m' javaHomeOption: 'JDKVersion' jdkVersionOption: '1.8' jdkArchitectureOption: 'x64' publishJUnitResults: false testResultsFiles: '**/TEST-*.xml' tasks: 'build'
补充说明:
- 如果你的项目没有在
build.gradle里明确指定ndkVersion,建议手动写一个具体版本号(比如21.4.7075529)替换auto,避免自动安装最新版本可能带来的兼容性问题。 - 你的项目
build.gradle里最好明确声明NDK版本,比如在app模块的配置中:android { ndkVersion "21.4.7075529" // 替换为你项目兼容的版本 // 其他Android配置... }
方法二:切换到预装NDK的虚拟机镜像
如果你的项目允许,可以把虚拟机镜像换成macOS-12或更高版本的镜像,这些新版本镜像默认预装了常用的NDK版本,能省去手动安装的步骤。修改pool部分即可:
pool: vmImage: 'macOS-12'
两种方法都能解决你当前的NDK缺失问题,优先推荐方法一,因为它更灵活,适配你当前使用的macOS-10.14镜像,也能保证NDK版本和项目需求一致。
内容的提问来源于stack exchange,提问作者Parag
相关产品推荐
相关产品推荐

