如何解决flutter_cupertino_localizations包编译错误

时间:2019-10-11 09:36:01

标签: flutter

我的项目使用flutter_cupertino_localizations包,并用于编译和正常运行。截止到今天,我的编译错误已消失。

Compiler message:
file:///Users/.../Applications/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_cupertino_localizations-1.0.1/lib/src/cupertino_localizations.dart:127:38: Error: Getter not found: 'kSupportedLanguages'.
  bool isSupported(Locale locale) => kSupportedLanguages.contains(locale.languageCode);

这是我上次进行此项目时(过去几周)的正常编译。我唯一能想到的改变是我正在使用的Xcode版本(以前是10版,现在是11版)。

flutter --version的输出是:

Flutter 1.5.8•通道未知•未知源 框架•修订版0ba67226ee(6个月前)•2019-04-24 17:18:28 -0700 引擎•版本c63d1cf9c9 工具•Dart 2.3.0(内部版本2.3.0-dev.0.1 1f1592edce)

1 个答案:

答案 0 :(得分:0)

该错误可能是因为您在 MaterialApp 中像这样配置语言环境:

  MaterialApp(
  ...
    localizationsDelegates: [
      GlobalMaterialLocalizations.delegate,
      GlobalWidgetsLocalizations.delegate,
    ],
    supportedLocales: [const Locale('pt', 'BR')],
  );

但是您忘记在您的 GlobalCupertinoLocalizations.delegate 中添加 localizationsDelegates。然后要解决这个问题,只需像这样添加它:

  MaterialApp(
  ...
    localizationsDelegates: [
      GlobalMaterialLocalizations.delegate,
      GlobalWidgetsLocalizations.delegate,
      GlobalCupertinoLocalizations.delegate,
    ],
    supportedLocales: [const Locale('pt', 'BR')],
  );

但是如果您删除所有这些配置,您的应用程序将加载默认配置并且可以完美运行。但语言默认为英语。