l10n 迁移到 null 安全

时间:2021-07-24 00:31:32

标签: flutter dart-null-safety

我正在尝试将我的 Flutter/Dart 项目迁移到 Null Safety。当我跑

public abstract class A {

    @Test
    public void aTest() {

    }
}

@Test
public class B extends A {

}

看来我所有的依赖项都支持空安全

<块引用>

显示当前未选择加入空安全的依赖项。 [✗] 表示没有空安全支持的版本。 [✓] 表示 选择空安全的版本。

您的所有依赖项都声明支持空安全。

我正在使用“dart migrate”工具。当我应用更改时,我的代码中出现错误:

<块引用>

库“package:xxx/generated/l10n.dart”是遗留的,并且 不应导入到空安全库中。尝试迁移 导入的 library.dart(import_of_legacy_library_into_null_safe)

如果在 Flutter 项目中使用翻译/国际化服务,真的可以迁移到空安全吗?

1 个答案:

答案 0 :(得分:0)

首先确保即使依赖项接受空安全,您也指向接受它并尝试使用它的最新版本的依赖项版本。如果这不起作用,请尝试丢弃包并更新那些使用空安全的包,一点一点地更新,直到您被允许更新所有包并且不会产生冲突。

还要确保在进行这些更改时运行 dart pub upgrade --null-safety,以免生成缓存错误。

当您执行dart migrate命令时,是否允许您进入选择文件的屏幕?

如果答案是肯定的,那么尝试进行所有更改,关闭并重新打开项目并清除所有系统缓存,如果答案是否定的,则可能您正在使用的软件包之一只是存在内部错误并且它还没有真正准备好使用空安全。

如果最后这些都不行,直接在文档中尝试 Flutter 提出的手动迁移https://dart.dev/null-safety/migration-guide