Github Actions中Flutter CI出错:没有匹配的NDK版本。

3

项目仓库

我一直在提交提交记录

但是,我遇到了错误

* What went wrong:
Execution failed for task ':app:stripReleaseDebugSymbols'.


> No version of NDK matched the requested version 20.0.5594570. Versions available locally: 21.0.6113669

以下是CI代码(Flutter CI - Customer):
name: Flutter CI - Customer

on:
  push:
    branches:
      - master
    paths:
      - holinoti_customer/**
      - .github/workflows/flutter-customer.yml

  pull_request:
    branches:
      - master
    paths:
      - holinoti_customer/**

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2.0.0
    - name: Set up JDK 11
      uses: actions/setup-java@v1
      with:
        java-version: 11.0.2
    - name: Android NDK toolchain Setup
      uses: ravinderjangra/android-ndk-toolchain-setup@0.1
      with: 
        api: '21'
        arch: 'arm'
        install-location: 'toolchains'
    - uses: subosito/flutter-action@v1.1.1
      with:
        flutter-version: '1.12.x' # you can use 1.12
    - name: Install dependencies
      run: flutter pub get
      working-directory: holinoti_customer
    - name: Test Build
      run: flutter build apk
      working-directory: holinoti_customer

在我的本地项目中,我在Android Studio的项目结构中设置了NDK路径。

然而,此解决方案无法应用于Github Action。
因此,我尝试使用“Android NDK工具链设置”,但仍然失败。
2个回答

5

不要使用 local.properties 文件,而是将 ndkVersion 在 build.gradle 中设置为与 CI 服务器上可用的版本匹配。例如:

android {
    ndkVersion "21.1.6352462"
}

我假设你的CI已经更新,使r21b版本可用,否则请使用错误消息中的21.0.blah版本。

这样你的CI和本地构建都使用同一个版本。

这就是改变的动机,为了保证构建的可复制性。以前,你的CI和本地构建使用不同版本的NDK,这可能会成为一个令人惊讶和烦人的 bug 来源 :)


在 Github Actions 代理上安装另一个 NDK 版本怎么样?有没有办法通过命令行安装 NDK?NDK 文件应该放在 Github Actions 代理的哪里? - shioko
在你的build.gradle文件中设置该属性,如果需要的话就会下载NDK。对于AGP 4.1及以上版本,即使没有上述设置,也会在需要时下载NDK。 - Dan Albert
非常有帮助!我被这个问题困扰了好几天,一个类似的错误也让我来到了这里。同时感谢楼主发布这个问题。不过这个为什么需要呢? - mike-gallego

0

检查 SDK 工具更新,更新 NDK 和 CMake 工具。


5
请在您的回答中添加更多细节,例如工作代码或文档引用,以扩展说明。 - Community

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