我有一个奇怪的Flutter“获取软件包”问题:
到目前为止,我正在从事的项目一直在使用一个相当基本的,自制的模型系统。我们有一些使用数据的功能,无需太多验证,就可以将其分配给不可变对象内的对象键。它相当粗糙,我们希望对更广泛使用并且希望更强大的东西进行标准化。
最近的一些研究将我们指向了“内置值”包,因为它似乎不仅提供了一种更为标准的模型定义方式,而且还可以减少我们一遍又一遍地编写的样板。我们在线找到了一些说明,以将其添加到我们的项目中。本质上,我们必须添加两个依赖关系和两个dev_dependencies。这是pubspec.yaml基础的样子:
name: projectname
description: my project rocks!
version: 1.0.0
environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0"
dependencies:
flutter:
sdk: 'flutter'
...
built_collection: '^4.1.0'
built_value: '^6.3.0'
dev_dependencies:
flutter_test:
sdk: flutter
build_runner: '^1.2.1'
built_value_generator: '^6.3.0'
这是扑扑医生说的:
[√] Flutter (Channel stable, v1.0.0, on Microsoft Windows [Version
10.0.17134.523], locale en-US)
• Flutter version 1.0.0 at c:\flutter\flutter
• Framework revision 5391447fae (9 weeks ago), 2018-11-29 19:41:26 -0800
• Engine revision 7375a0f414
• Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)
[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
• Android SDK at C:\Users\MYUSER\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
• All Android licenses accepted.
[√] Android Studio (version 3.3)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 32.0.1
• Dart plugin version 182.5124
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
[√] Connected device (1 available)
• MY PHONE
• No issues found!
表面上看来一切正常。但是然后,在Intellij中(上面的所有内容都是从那里复制的),我使用了flutter的“ Packages get”命令(即使使用项目目录中的命令行版本,我也会得到相同的结果):
Running "flutter packages get" in projectname...
The current Dart SDK version is 2.1.0-dev.9.4.flutter-f9ebf21297.
Because build_runner >=1.2.0 depends on build_daemon >=0.2.0 which requires SDK version >=2.1.0 <3.0.0, build_runner >=1.2.0 is forbidden.
So, because projectnamedepends on build_runner ^1.2.1, version solving failed.
pub get failed (1)
Process finished with exit code 1
现在,有趣的部分是我将其设置为使用flutter的“ stable”分支,该分支当前的版本为“ 2.1.0-dev.9.4.flutter-f9ebf21297”,flutter医生正在将其注册为版本“ 2.1.0“。但是,当尝试使软件包获得命令抖动时,似乎会认为“ 2.1.0-dev.9.4.flutter-f9ebf21297”不是“> = 2.1.0 <3.0.0”。
所有软件包的版本都是最新版本,具体取决于其git repos。 Flutter是最新的最新稳定分支(我现在已重做两次以确保)。 Flutter Doctor命令似乎认为一切正确……但是我无法完成“ packages get”命令,因为build_daemon(build_runner的一个部门)需要“> = 2.1.0 <3.0.0”,而flutter脚本不是认识到版本“ 2.1.0-dev.9.4.flutter-f9ebf21297”> =“ 2.1.0”,这是它在Flutter Doctor中自己承认的。
我一直在绞尽脑汁寻求解决方案。我尝试过手动切换到master分支以进行抖动,但是当我从Intellij运行它时,它会立即切换回稳定状态。我尝试完全重新安装Flutter,但没有帮助。我一直在与这些事情作斗争一段时间,以为我做错了什么,没有取得任何进展。我已经阅读了有关该主题的所有文档,似乎没有任何迹象表明除我以外的任何人都遇到了这个问题。所以我很茫然。
我正在与社区联系,以使这项工作正常进行。我觉得我在这里似乎缺少明显的东西,我想让您的眼睛除了我的眼睛外,还能帮助解决问题。您建议我如何解决此问题?
预先感谢, 楼首