0

我收到错误消息No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi。我找到的解决方案是在 Android Studio 中升级或降级 NDK。但是,我正在使用 Azure Pipeline,但不知道该怎么做。

有两次运行,其中一次成功,另一次失败。他们两个都有相同的提交,并且只相差一天。它们之间的唯一区别是Initialize Job任务中的代理和图像版本。

成功:

Starting: Initialize job
Agent name: 'Hosted Agent'
Agent machine name: 'fv-az394-23'
Current agent version: '2.192.0'
Operating System
Virtual Environment
Virtual Environment Provisioner
Current image version: '20210919.1'
Agent running as: 'vsts'
Prepare build directory.

失败的:

Starting: Initialize job
Agent name: 'Hosted Agent'
Agent machine name: 'fv-az216-247'
Current agent version: '2.193.0'
Operating System
Virtual Environment
Virtual Environment Provisioner
Current image version: '20210929.1'
Agent running as: 'vsts'
Prepare build directory.

我认为解决方案是配置gradle(我不确定要修复哪个)或在MS托管代理中重新配置NDK(我不确定如何)。

有什么建议吗?我不确定这是否是颤振(1.22.6)特定或一般的android问题。但是,我可以在我的机器上很好地构建它。

4

2 回答 2

1

正如在这个github 问题解决方法中所讨论的,基本上我们需要在app/build.gradle. 最小的解决方案是:

android {
    compileSdkVersion 30
    ndkVersion "21.4.7075529"
    ...
}
于 2021-10-07T20:01:12.293 回答
0

我遇到过同样的问题。我的管道在 ubuntu-16.04 上完美运行,但最近 Microsoft 删除了对 ubuntu-16.04 的支持,并且这个 NDK 问题开始出现在 ubuntu-latest 和 ubuntu-18 上。主要原因是 NDK 23 的工具链与以前版本的 NDK (22-) 不同,因此旧版本的 AGP(Android Gradle 插件)不知道在哪里可以找到不同 ABI 的可执行文件。这是我所做的解决方法。

   - task: Bash@3
      displayName: 'Install NDK'
      inputs:
        targetType: 'inline'
        script: '$ANDROID_HOME/tools/bin/sdkmanager --install "ndk;20.0.5594570"'
    - task: Bash@3
      displayName: 'Downloading NDK'
      inputs:
        targetType: 'inline'
        script: wget https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip -P $(Build.SourcesDirectory)
    - task: Bash@3
      displayName: 'Unzipping NDK'
      inputs:
        targetType: 'inline'
        script: unzip $(Build.SourcesDirectory)/android-ndk-r20b-linux-x86_64.zip
            
    - task: Bash@3
      displayName: 'copying NDK to NDK Variable'
      inputs:
        targetType: 'inline'
        script: cp -r $(Build.SourcesDirectory)/android-ndk-r20b/toolchains $ANDROID_NDK_LATEST_HOME; cp -r $(Build.SourcesDirectory)/android-ndk-r20b/toolchains $ANDROID_NDK_HOME                
于 2021-11-25T13:22:32.727 回答