You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab Flutter Android流水线报错:Dart SDK版本不匹配求助

问题描述

我正尝试为Flutter Android项目搭建GitLab流水线,使用cirrusci/flutter:stable镜像,但执行flutter pub get时失败,错误提示当前Dart SDK版本为2.19.4,无法满足依赖cobol_lab要求的>=3.3.1 <4.0.0版本范围。

流水线代码

image: cirrusci/flutter:stable

stages:
  - build
  - test
 

before_script:
  - flutter --version  
  - flutter pub get    

build-job:
  stage: build
  script:
    - echo "Building the Flutter app..."
    - flutter build apk --release  
  artifacts:
    paths:
      - build/app/outputs/flutter-apk/app-release.apk  

unit-test-job:
  stage: test
  script:
    - echo "Running unit tests..."
    - flutter test integration_test

lint-test-job:
  stage: test
  script:
    - echo "Running lint checks..."
    - flutter analyze  

错误日志

$ flutter --version
Flutter 3.7.7 • channel unknown • unknown source
Framework • revision 2ad6cd72c0 (1 year, 3 months ago) • 2023-03-08 09:41:59 -0800
Engine • revision 1837b5be5f
Tools • Dart 2.19.4 • DevTools 2.20.1
$ flutter pub get
Running "flutter pub get" in lab-di-progettazione...
Resolving dependencies...
The current Dart SDK version is 2.19.4.
Because cobol_lab requires SDK version >=3.3.1 <4.0.0, version solving failed.
pub get failed
command: "/sdks/flutter/bin/cache/dart-sdk/bin/dart __deprecated_pub --directory . get --example"
pub env: {
  "FLUTTER_ROOT": "/sdks/flutter",
  "PUB_ENVIRONMENT": "flutter_bot:flutter_cli:get",
  "PUB_CACHE": "/root/.pub-cache",
}
exit code: 1
Cleaning up project directory and file based variables
00:01
ERROR: Job failed: exit code 1

解决建议

  • 升级Flutter镜像版本:cirrusci/flutter:stable当前拉取的是Flutter 3.7.7(对应Dart 2.19.4),版本过旧。更换为满足Dart 3.3.1+的镜像版本,比如指定具体版本标签(如cirrusci/flutter:3.20.0,对应Dart 3.4.0),直接替换镜像地址即可:

    image: cirrusci/flutter:3.20.0
    

    可查看cirrusci/flutter的可用版本标签,选择对应Dart版本≥3.3.1的镜像。

  • 降级依赖版本:如果暂时无法升级Flutter版本,可修改pubspec.yaml中cobol_lab的版本约束,选择支持Dart 2.19.4的旧版本。查找该依赖的历史版本后,将版本号改为兼容范围,例如:

    dependencies:
      cobol_lab: ^x.y.z # 替换为支持Dart 2.19.4的版本号
    
  • 在流水线中升级Flutter:若坚持使用stable镜像,可在before_script中添加升级命令,确保获取最新stable版本:

    before_script:
      - flutter channel stable
      - flutter upgrade
      - flutter --version  
      - flutter pub get    
    

    注意:这种方式会增加流水线执行时间,需确保镜像环境支持升级操作。

内容的提问来源于stack exchange,提问作者user25485064

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:33:13