首页 > 解决方案 > 如何在 github 操作中在 Flutter 中配置 dart sdk 版本

问题描述

现在我在 github 操作中像这样配置颤振项目:

jobs:
  build:
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-java@v1
      with:
        java-version: '12.x'
    - uses: subosito/flutter-action@v1
      with:
        flutter-version: '1.22.5'
    - name: Select Xcode version
      run: sudo xcode-select -s '/Applications/Xcode_12.1.app/Contents/Developer'
    - name: Bundle install
      run: cd ./ios && bundle install && bundle update fastlane
    - name: Install tools
      run: |
       flutter pub get
       cd ./ios && pod install

但它显示如下:

ERR : The current Dart SDK version is 2.10.4.
    | 
    | Because Cruise depends on intl >=0.17.0-nullsafety which requires SDK version >=2.11.0-180.0.dev <3.0.0, version solving failed.
FINE: Exception type: SolveFailure
FINE: package:pub/src/solver/version_solver.dart 312:5   VersionSolver._resolveConflict
    | package:pub/src/solver/version_solver.dart 133:27  VersionSolver._propagate
    | package:pub/src/solver/version_solver.dart 97:11   VersionSolver.solve.<fn>

我知道在 github 操作中编译时的 dart 版本太低,我应该如何指定 dart 版本?当我使用国际低版本的包时:

  intl: 0.16.1

编译项目时显示如下错误:

"zh_HK": 42 untranslated message(s).
"zh_TW": 42 untranslated message(s).
"zu": 42 untranslated message(s).
To see a detailed report, use the untranslated-messages-file 
option in the l10n.yaml file:
untranslated-messages-file: desiredFileName.txt
<other option>: <other selection> 


This will generate a JSON format file containing all messages that 
need to be translated.
Running "flutter pub get" in cruise-open...
Because Cruise depends on flutter_localizations any from sdk which depends on intl 0.17.0-nullsafety.2, intl 0.17.0-nullsafety.2 is required.
So, because Cruise depends on intl 0.16.1, version solving failed.
pub get failed (1; So, because Cruise depends on intl 0.16.1, version solving failed.)

我应该怎么做才能解决这个冲突问题?

标签: flutter

解决方案


问题是,flutter 1.22.5 确实与 dart 2.10.4 一起提供。例如,我在自己的电脑上安装了这个版本,我确实看到它打包的 dart 是 2.10.4。

因此,您需要将您对 , 的依赖更改Cruise为旧版本。

或者,您可能需要使用betaFlutter 的通道:

      - uses: subosito/flutter-action@v1
        with:
          flutter-version: '1.20.5'
          channel: 'beta'

推荐阅读