如何修复「无上下文导航需GetMaterialApp或Get.key」错误?
问题修复:无上下文导航报错
报错说明
你触发的报错:You are trying to use contextless navigation without a GetMaterialApp or Get.key,核心原因是GetX的无上下文导航功能必须依赖GetMaterialApp(而非原生MaterialApp)初始化导航环境,或在测试模式下开启对应配置。
解决方案
分两种场景处理:
1. 真机/模拟器运行(正式场景)
找到应用入口文件(通常是main.dart),将原生MaterialApp替换为GetMaterialApp,示例代码如下:
import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:hetmaantje/welcome_screen.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { // 替换MaterialApp为GetMaterialApp return GetMaterialApp( title: 'Quiz App', theme: ThemeData( primarySwatch: Colors.blue, ), home: welcome_screen(), ); } }
2. 应用测试阶段
如果是单元测试或Widget测试场景,在测试代码开头设置Get.testMode = true即可:
void main() { setUp(() { Get.testMode = true; }); // 你的测试代码逻辑... }
验证效果
完成上述修改后,点击页面中的"Lets Start Quiz"按钮,即可正常通过Get.to(quiz_screen())跳转到目标页面。
内容的提问来源于stack exchange,提问作者Android_devNL
相关产品推荐
相关产品推荐

