【问题标题】:Azure pipeline ndk version error gradle build React Native AndroidAzure 管道 ndk 版本错误 gradle build React Native Android
【发布时间】:2022-08-22 14:47:37
【问题描述】:

Azure 管道在 gradle 构建 React Native Android 时出现 ndk 版本错误。

  • 出了什么问题: 任务 \':app:stripReleaseDebugSymbols\' 执行失败。

没有与请求的版本 21.4.7075529 匹配的 NDK 版本。本地可用版本:23.2.8568313、24.0.8215888、25.0.8775105、25.0.8775105

  • 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • https://help.gradle.org 获得更多帮助

在 7m 15s 内构建失败 549 个可操作的任务:549 个已执行 错误:进程 \'/Users/runner/work/1/s/android/gradlew\' 失败,退出代码为 1 在 ExecState._setResult (/Users/runner/work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.200.2/node_modules/azure-pipelines-task-lib/toolrunner.js:944:25) 在 ExecState.CheckComplete (/Users/runner/work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.200.2/node_modules/azure-pipelines-task-lib/toolrunner.js:927:18) 在 ChildProcess。 (/Users/runner/work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.200.2/node_modules/azure-pipelines-task-lib/toolrunner.js:840:19) 在 ChildProcess.emit (events.js:198:13) 在可能关闭(内部/child_process.js:982:16) 在 Socket.stream.socket.on (internal/child_process.js:389:11) 在 Socket.emit (events.js:198:13) 在 Pipe._handle.close (net.js:607:12) ##[错误]错误:进程\'/Users/runner/work/1/s/android/gradlew\'失败,退出代码

here is image of error when pipeline fail

  • 这张票有更新吗?
  • - 任务:CmdLine@2 输入:脚本:ANDROID_HOME=$HOME/Library/Android/sdk SDKMANAGER=$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager echo y | $SDKMANAGER \"ndk;21.4.7075529\"
  • 我在 yaml 中添加了任务并收到错误:- 生成脚本。脚本内容:ANDROID_HOME=$HOME/Library/Android/sdk SDKMANAGER=$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager echo y | $SDKMANAGER \"ndk;21.4.7075529\" ========================== 启动命令输出 ========== ================= /bin/bash --noprofile --norc /Users/runner/work/_temp/98009ce2-5cf5-4673-bee9-22065b2f1e94.sh /Users/ runner/work/_temp/98009ce2-5cf5-4673-bee9-22065b2f1e94.sh:第 1 行:ndk;21.4.7075529:找不到命令##[错误]Bash 退出,代码为 \'127\'。整理:CmdLine
  • 你用的是什么代理?您使用的是 Microsoft 托管的 Macos 代理吗?可以分享一下 CMD 任务设置的截图吗?解决此问题会更容易。
  • 谢谢@KevinLu-MSFT。我已将 ndk 版本从 21.4.7075529 更新到 25.0.8775105 并更新了我的 react native 项目的 gradle 版本。它的工作正常,管道现在也工作正常。

标签: react-native azure-devops android-ndk azure-pipelines version


【解决方案1】:

没有与请求的版本 21.4.7075529 匹配的 NDK 版本。本地可用版本:23.2.8568313、24.0.8215888、25.0.8775105、25.0.8775105

从错误消息来看,这个问题的根本原因是代理上不存在 Android NDK 版本 21.4.7075529。

请参阅此代码:Android NDK 21 will be replaced in favor of 25 on August, 1st

我们正在用 r25 替换 r21,因为我们根据我们的软件和映像指南支持两个最新的 LTS 版本(我们支持 1 个最新的非 LTS 和 2 个最新的 LTS 版本的 NDK)

Microsoft 托管代理上的 Android NDK 版本已升级到版本 25。

要解决您的问题,您需要在 Pipeline 中添加一个步骤来安装 Android NDK 版本 21.4.7075529 。

视窗

$sdkRoot = "C:\Android\android-sdk"
$sdkManager = "$sdkRoot\cmdline-tools\latest\bin\sdkmanager.bat"
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
                           -AndroidSDKRootPath $sdkRoot `
                           -AndroidPackages "ndk;21.4.7075529"

苹果系统

 ANDROID_HOME=$HOME/Library/Android/sdk
 SDKMANAGER=$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager
 echo y | $SDKMANAGER "ndk;21.4.7075529"

Ubuntu

ANDROID_ROOT=/usr/local/lib/android
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"

【讨论】:

    【解决方案2】:

    我已将 ndk 版本从 21.4.7075529 更新到 25.0.8775105 当我们更新 ndk 版本时,我们还需要更新我们的项目是支持最新 ndk 版本的 gradle 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      相关资源
      最近更新 更多