【问题标题】:Flutter 2: problem in Intl null safety libraryFlutter 2:Intl null 安全库中的问题
【发布时间】:2021-06-03 01:19:45
【问题描述】:

我将我的颤振 sdk 升级到颤振 2.0.0。更新 sdk 后,我几乎将所有库都更改为空安全版本:

environment:
  sdk: '>=2.12.0 <3.0.0'

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter 
  cupertino_icons: ^0.1.3
  encrypt: ^4.1.0
  flutter_hooks: ^0.15.0
  flutter_map: ^0.11.0
  flutter_password_strength: ^0.1.5
  flutter_svg: ^0.18.0
  geolocator: ^7.0.1
  get: ^3.25.6
  get_it: ^6.0.0
  injectable: ^1.1.2
  local_auth: ^1.1.0
  moor_flutter: ^3.1.0
  provider: ^5.0.0
  shared_preferences: ^2.0.3
  supercharged: ^1.12.0
  intl: ^0.17.0

更新后我运行 dart $ dart migrate 命令。但它显示了有关 intl 插件的这些问题:

Analyzing project...
[---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/]
5 analysis issues found:
  error • 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 • (return_of_invalid_type)
  error • 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 • (return_of_invalid_type)
  error • Non-nullable instance field 'current' must be initialized at lib/generated/l10n.dart:16:3 • (not_initialized_non_nullable_instance_field)
  error • The non-nullable variable 'current' must be initialized at lib/generated/l10n.dart:18:12 • (not_initialized_non_nullable_variable)
  error • 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 • (return_of_invalid_type)

The migration tool didn't start, due to analysis errors.

我正在使用最新版本的 intl ?我该如何解决?

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.0, on Linux, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0-rc1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.0)
[✓] VS Code (version 1.53.2)
[✓] Connected device (2 available)

• No issues found!

【问题讨论】:

  • 同样的问题。在任何地方都找不到解决方案。就我而言,intl: 0.17.0-nullsafety.2 版本的 intl 库不能解决问题 - 它仍然在没有空安全性的情况下生成。但是我看到您有常规的 0.17.0,您可以尝试使用 0.17.0-nullsafety.2 版本的 intl 吗?我想知道它是否会对您有所帮助,那么它将是我这边的事情。尝试后请在此回复。

标签: flutter migration dart-null-safety


【解决方案1】:

我有同样的问题。以下是解决此问题的 3 个步骤:

  1. 首先,将pubspec.yaml 中的intl 依赖更新为:

    国际:0.17.0-nullsafety.2

  2. 如果还是不行,就在根目录下添加这两个字段。

    dependency_overrides: 国际:0.17.0-nullsafety.2

  3. 生成也可以通过 Android Studio 中的插件进行。我使用的是旧版本 (v 0.12),在我更新到 (v 0.14) 后,它开始生成用于本地化的空安全 dart 文件。

我想我踩到了这里的每一块石头。

【讨论】:

    猜你喜欢
    • 2021-11-09
    • 2021-06-21
    • 2022-01-06
    • 2020-03-10
    • 1970-01-01
    • 2021-04-04
    • 2021-11-25
    • 2021-10-04
    • 1970-01-01
    相关资源
    最近更新 更多