Flutter packages get失败,依赖于需要SDK版本<2.0.0的flutter_test中的任何内容,版本解决失败。

30

我创建了一个Flutter项目,并运行了flutter packages get命令,输出如下所示: [second] flutter packages get 等待另一个Flutter命令释放启动锁定... 在second中运行“flutter packages get”... 当前Dart SDK版本为2.0.0-dev.63.0.flutter-4c9689c1d2

Because second depends on flutter_test any from sdk which requires SDK version <2.0.0, version solving failed.
pub get failed (1)
exit code 1

flutter doctor -v

PS D:\dartstudy\second> flutter doctor -v
[√] Flutter (Channel dev, v0.5.7, on Microsoft Windows [Version 6.1.7601], locale zh-CN)
    • Flutter version 0.5.7 at E:\flutter
    • Framework revision 66091f9696 (2 weeks ago), 2018-07-09 12:52:41 -0700
    • Engine revision 6fe748490d
    • Dart version 2.0.0-dev.63.0.flutter-4c9689c1d2

[√] Android toolchain - develop for Android devices (Android SDK 28.0.1)
    • Android SDK at f:\Android\Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.1
    • ANDROID_HOME = f:\Android\Sdk
    • Java binary at: E:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    • All Android licenses accepted.

[√] Android Studio (version 3.1)
    • Android Studio at E:\Program Files\Android\Android Studio
    • Flutter plugin version 26.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] VS Code, 64-bit edition (version 1.25.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 2.16.0

[!] Connected devices
    ! No devices available

! Doctor found issues in 1 category.

我用来创建项目的IDE是VS code。 我更改了一些Flutter SDK的版本,但问题与上述相同。如何解决这个问题?

13个回答

23

我遇到了类似的问题:

Running "flutter packages get" in austin-feeds-me-flutter...
The current Dart SDK version is 2.0.0-dev.58.0.flutter-f981f09760.

Because austin_feeds_me depends on palette_generator any which requires SDK version >=2.0.0-dev.61.0 <3.0.0, version solving failed.
pub get failed (1)
Process finished with exit code 1

我用以下命令进行修复:

flutter channel dev
flutter upgrade

修复来源:https://github.com/flutter/flutter/issues/19382


4
Flutter建议使用稳定分支来进行频道设置。请参阅https://github.com/flutter/flutter/wiki/Flutter-build-release-channels。 - Alain Beauvois
在我重新安装操作系统并想要重新打开一个旧的Flutter应用程序后,这对我有用。 - M A F
我不认为转到开发频道是稳定项目的有效解决方案。 - Ride Sun
@RideSun,这是一个很好的警告。请谨慎使用此答案。 - dazza5000
1
目前,如果您使用此答案,您需要运行“flutter channel beta”而不是“flutter channel dev”,因为开发通道已被弃用。希望对某人有所帮助。 - hfunes.com
1
目前,如果你使用这个答案,你需要运行"flutter channel beta"而不是"flutter channel dev",因为开发通道已经被弃用了。希望能对某人有所帮助。 - undefined

8

我通过使用 any 而不是版本代码来解决了我的错误。

flutter_test: any

替代

flutter_test: ^1.1.0+1

我喜欢这个选项,但稍微有些变化。正常的项目框架中包含来自SDK的flutter_test,因此我使用了“any”来进行测试(非小部件测试),以避免版本冲突。 - gbryant

6

只需要使用以下代码更新您的SDK

flutter channel dev
flutter upgrade

如果你居住在伊朗,你需要使用代理,因为谷歌不允许你使用其软件包。对于scoped_model,你需要在pubspec.yaml文件中使用以下版本:

dependencies:
  scoped_model: ^1.0.1

然后保存文件,您的 IDE 将自动更新包


我在这之后遇到了这个错误:“您的Flutter应用程序是使用旧版Android嵌入式创建的。它正在被弃用,推荐使用Android嵌入式v2。” - STG

2

只需在pubspec.yaml中修改包版本为最新版本即可解决我的问题。


2
我知道这是一个过时的问题,但我认为有人会从中受益,而且答案仍然相关。
您需要在pubspec.yaml中修复environment:,以允许使用您正在使用的Dart SDK版本(来自Flutter的版本)。
environment:
  sdk: ">=2.0.0-dev.68.0 <3.0.0"

重要部分是 <3.0.0
原回答来自GitHub上的一个名叫Günter Zöchbauer的人:https://github.com/flutter/flutter/issues/21421#issuecomment-418718539

1

我只是将Flutter升级到最新版本,这为我解决了问题。

flutter upgrade //在CLI中输入此命令以升级Flutter。


虽然这回答了问题,但它只是重复了之前回答中已经提供的信息。当你有足够的声望时,可以点赞有用的答案。 - joanis

0

可能你的Flutter SDK不是最新版本。通过以下命令进行升级(文档指出,最好保持稳定通道,只有在必要时才升级到dev)

flutter upgrade

0

我自己找到了这个问题的解决方案。我添加了系统环境变量PUB_ALLOW_PRERELEASE_SDK=false,所以只需要删除这个系统环境变量,问题就会得到解决。


1
当我执行 "env" 时,我并没有发现那个环境变量,但问题仍然存在。 - dazza5000

0

尝试将 geoflutterfire: ^3.0.3 替换为 geoflutterfire2: ^2.3.15,这对我有效。


你的回答可以通过添加更多支持性信息来改善。请编辑以添加更多细节,例如引用或文档,以便其他人可以确认你的答案是否正确。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

0

我遇到了同样的问题,使用flutter upgrade --force命令解决了这个问题。

注意:在升级Flutter版本后,请重新运行flutter pub get命令。


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