Flutter翻译程序运行报错:Translate类初始化失败及空安全问题求助
我在运行翻译程序时,以下代码行出现报错:
Translate _translate = new Translate();
已导入对应库:
import 'package:translate/translate.dart';
项目依赖配置如下:
dependencies: flutter: sdk: flutter google_maps_flutter: ^2.2.3 google_maps_controller: ^1.2.0 geolocator: ^9.0.2 speech_to_text: ^6.1.1 flutter_tts: ^3.6.3 flutter_translate: ^4.0.3 translate: ^1.0.0 translator: ^0.1.7 translate: ^1.0.0
运行代码后出现的错误信息:
Error: Cannot run with sound null safety, because the following dependencies don't support null safety:
- package:translate
lib/main.dart:44:3: Error: Type 'Translate' not found.
Translate _translate = new Translate();
^^^^^^^^^
lib/main.dart:44:3: Error: 'Translate' isn't a type.
Translate _translate = new Translate();
^^^^^^^^^
lib/main.dart:44:30: Error: Couldn't find constructor 'Translate'.
Translate _translate = new Translate();
^^^^^^^^^
Unhandled exception:
Bad state: Unsupported Null Safety mode NonNullableByDefaultCompiledMode.Invalid, in null.
#0 ProgramCompiler.emitModule (package:dev_compiler/src/kernel/compiler.dart:484:9)
#1 JavaScriptBundler.compile (package:frontend_server/src/javascript_bundle.dart:153:33)
#2 FrontendCompiler.writeJavascriptBundle (package:frontend_server/frontend_server.dart:705:47)
#3 FrontendCompiler.compile (package:frontend_server/frontend_server.dart:612:9)
#4 listenAndCompile.(package:frontend_server/frontend_server.dart:1210:11)
Finished with error: the Dart compiler exited unexpectedly.
Failed to compile application.
1. 替换为支持空安全的翻译包
translate: ^1.0.0既不支持空安全,且其API结构和当前调用方式不匹配。你已经在依赖中添加了translator包,建议改用它:
- 修改导入语句:
import 'package:translator/translator.dart'; - 修改初始化代码:
GoogleTranslator _translate = GoogleTranslator();
这个包的API更成熟,且支持空安全,能直接避免当前的编译错误。
2. 清理重复的依赖配置
你的pubspec.yaml中重复声明了translate: ^1.0.0,删除重复的那一行,保持依赖配置的简洁性。
3. (不推荐)关闭空安全运行
如果一定要继续使用translate包,可以通过关闭空安全来运行项目:
- 运行项目时执行:
flutter run --no-sound-null-safety - 编译项目时执行:
flutter build --no-sound-null-safety
但这种方式会放弃Dart的空安全特性,增加代码出现空指针异常的风险,不建议长期使用。
内容的提问来源于stack exchange,提问作者Amir RL

