Flutter如何解决attempted to generate localizations code without having the flutter: generat错误
我在使用Flutter开发时遇到了"attempted to generate localizations code without having the flutter: generate"错误。这个错误通常出现在运行flutter gen-l10n命令时,提示无法生成本地化代码。我已经按照官方文档在pubspec.yaml中配置了flutter_localizations依赖,但仍然报错。请问这个问题该如何解决?是否需要额外配置其他文件或者修改某些设置?
2 回复
这个错误通常是因为缺少本地化配置导致的。解决方法如下:
- 在 pubspec.yaml 中添加依赖:
dependencies:
flutter_localizations:
sdk: flutter
- 启用生成器:
flutter:
generate: true
- 创建 l10n.yaml 文件(项目根目录):
arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
-
创建本地化文件: 在
lib/l10n/目录下创建app_en.arb等语言文件 -
执行命令:
flutter gen-l10n
- 在 MaterialApp 中配置:
localizationsDelegates: AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales,
完成这些步骤后重新运行项目即可解决该错误。
更多关于Flutter如何解决attempted to generate localizations code without having the flutter: generat错误的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
这个错误通常是因为Flutter本地化代码生成配置不正确导致的。以下是解决方案:
1. 检查 pubspec.yaml 配置
确保在 pubspec.yaml 中正确配置了本地化生成器:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
flutter:
generate: true
2. 创建 l10n.yaml 文件
在项目根目录创建 l10n.yaml 文件:
arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
3. 创建本地化文件目录和文件
在 lib/l10n/ 目录下创建 ARB 文件:
app_en.arb:
{
"@@locale": "en",
"hello": "Hello",
"@hello": {
"description": "A simple greeting"
}
}
app_zh.arb:
{
"@@locale": "zh",
"hello": "你好"
}
4. 在 MaterialApp 中配置
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
Locale('en'),
Locale('zh'),
],
home: MyHomePage(),
);
}
}
5. 重新生成代码
运行以下命令重新生成本地化代码:
flutter clean
flutter pub get
flutter gen-l10n
或者直接运行项目:
flutter run
常见问题排查
- 确保
flutter:下有generate: true - 检查
l10n.yaml文件路径和格式是否正确 - 确认 ARB 文件存在于指定目录
- 运行
flutter clean清除缓存
按照以上步骤操作后,错误应该就能解决。

