say*_*bir 6 migration flutter dart-null-safety
我将我的 flutter sdk 升级到 flutter 2.0.0。更新 sdk 后,我已将几乎所有库更改为 null 安全版本:
\nenvironment:\n sdk: \'>=2.12.0 <3.0.0\'\n\ndependencies:\n flutter:\n sdk: flutter\n flutter_localizations:\n sdk: flutter \n cupertino_icons: ^0.1.3\n encrypt: ^4.1.0\n flutter_hooks: ^0.15.0\n flutter_map: ^0.11.0\n flutter_password_strength: ^0.1.5\n flutter_svg: ^0.18.0\n geolocator: ^7.0.1\n get: ^3.25.6\n get_it: ^6.0.0\n injectable: ^1.1.2\n local_auth: ^1.1.0\n moor_flutter: ^3.1.0\n provider: ^5.0.0\n shared_preferences: ^2.0.3\n supercharged: ^1.12.0\n intl: ^0.17.0\nRun Code Online (Sandbox Code Playgroud)\n更新后我运行 dart$ dart migrate命令。但它显示了有关 intl 插件的这些问题:
Analyzing project...\n[---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/]\n5 analysis issues found:\n error \xe2\x80\xa2 A value of type \'Null\' can\'t be returned from the function \'_findExact\' because it has a return type of \'MessageLookupByLibrary\' at lib/generated/intl/messages_all.dart:34:14 \xe2\x80\xa2 (return_of_invalid_type)\n error \xe2\x80\xa2 A value of type \'Null\' can\'t be returned from the function \'_findGeneratedMessagesFor\' because it has a return type of \'MessageLookupByLibrary\' at lib/generated/intl/messages_all.dart:65:36 \xe2\x80\xa2 (return_of_invalid_type)\n error \xe2\x80\xa2 Non-nullable instance field \'current\' must be initialized at lib/generated/l10n.dart:16:3 \xe2\x80\xa2 (not_initialized_non_nullable_instance_field)\n error \xe2\x80\xa2 The non-nullable variable \'current\' must be initialized at lib/generated/l10n.dart:18:12 \xe2\x80\xa2 (not_initialized_non_nullable_variable)\n error \xe2\x80\xa2 A value of type \'S?\' can\'t be returned from the method \'of\' because it has a return type of \'S\' at lib/generated/l10n.dart:35:12 \xe2\x80\xa2 (return_of_invalid_type)\n\nThe migration tool didn\'t start, due to analysis errors.\nRun Code Online (Sandbox Code Playgroud)\n\n\n我正在使用最新版本的 intl ?我该如何解决这个问题?
\nDoctor summary (to see all details, run flutter doctor -v):\n[\xe2\x9c\x93] Flutter (Channel stable, 2.0.0, on Linux, locale en_US.UTF-8)\n[\xe2\x9c\x93] Android toolchain - develop for Android devices (Android SDK version 30.0.0-rc1)\n[\xe2\x9c\x93] Chrome - develop for the web\n[\xe2\x9c\x93] Android Studio (version 4.0)\n[\xe2\x9c\x93] VS Code (version 1.53.2)\n[\xe2\x9c\x93] Connected device (2 available)\n\n\xe2\x80\xa2 No issues found!\nRun Code Online (Sandbox Code Playgroud)\n
我遇到过同样的问题。以下是解决此问题的 3 个步骤:
首先,将intl依赖项更新为pubspec.yaml:
国际:0.17.0-nullsafety.2
如果仍然不起作用,则在根目录中添加这两个字段。
dependency_overrides:intl:0.17.0-nullsafety.2
生成也可以通过 Android Studio 中的插件进行。我使用旧版本(v 0.12),更新到(v 0.14)后,它开始生成用于本地化的空安全 dart 文件。
我想我踩过这里的每一块岩石。
| 归档时间: |
|
| 查看次数: |
4299 次 |
| 最近记录: |