【错误记录】Flutter 界面报错 ( No MediaQuery widget ancestor found. | Scaffold widgets require a MediaQuery )

news/2025/1/21 9:05:44/

文章目录

  • 一、报错信息
  • 二、解决方案





一、报错信息



Flutter 应用运行时报如下错误 :

Launching lib\main.dart on Pixel 2 in debug mode...
Running Gradle task 'assembleDebug'...
√ Built build\app\outputs\flutter-apk\app-debug.apk.
Installing build\app\outputs\flutter-apk\app.apk...
Uninstalling old version...
Error: ADB exited with exit code 1
Performing Streamed Installadb: failed to install D:\002_Project\002_Android_Learn\flutter_animation\build\app\outputs\flutter-apk\app.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package kim.hsl.flutter_animation signatures do not match previously installed version; ignoring!]
Installing build\app\outputs\flutter-apk\app.apk...
Debug service listening on ws://127.0.0.1:59548/20KwYgDmkUc=/ws
Syncing files to device Pixel 2...======== Exception caught by widgets library =======================================================
The following assertion was thrown building HeroAnimation:
No MediaQuery widget ancestor found.Scaffold widgets require a MediaQuery widget ancestor.
The specific widget that could not find a MediaQuery ancestor was: Scaffolddirtystate: ScaffoldState#6ef6f(lifecycle state: initialized, tickers: tracking 2 tickers)
The ownership chain for the affected widget is: "Scaffold ← HeroAnimation ← [root]"No MediaQuery ancestor could be found starting from the context that was passed to MediaQuery.of(). This can happen because you have not added a WidgetsApp, CupertinoApp, or MaterialApp widget (those widgets introduce a MediaQuery), or it can happen if the context you use comes from a widget above those widgets.The relevant error-causing widget was: HeroAnimation file:///D:/002_Project/002_Android_Learn/flutter_animation/lib/main.dart:5:10
When the exception was thrown, this was the stack: 
#0      debugCheckHasMediaQuery.<anonymous closure> (package:flutter/src/widgets/debug.dart:219:7)
#1      debugCheckHasMediaQuery (package:flutter/src/widgets/debug.dart:234:4)
#2      MediaQuery.of (package:flutter/src/widgets/media_query.dart:820:12)
#3      ScaffoldState.didChangeDependencies (package:flutter/src/material/scaffold.dart:2820:50)
#4      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4725:11)
...
====================================================================================================

在这里插入图片描述

在这里插入图片描述

出错代码 :

void main() {runApp(HeroAnimation());
}class HeroAnimation extends StatelessWidget{@overrideWidget build(BuildContext context) {// 时间膨胀系数 , 用于降低动画运行速度timeDilation = 10.0;return Scaffold(appBar: AppBar(title: Text("Hero 动画演示( 跳转前页面 )"),),body: Center(child: HeroWidget(imageUrl: "https://img-blog.csdnimg.cn/20210329101628636.jpg",width: 300,),),);}
}




二、解决方案



出现上述问题 , 是因为在界面的根组件 , 没有使用 MaterialApp 组件 , 在 main.dart 中的 main 函数中 , 运行的组件的根组件必须是 MaterialApp ;

在 Scaffold 组件的外层包裹一层 MaterialApp , 即可解决问题 ;

class HeroAnimation extends StatelessWidget{@overrideWidget build(BuildContext context) {// 时间膨胀系数 , 用于降低动画运行速度timeDilation = 10.0;return MaterialApp(home: Scaffold(appBar: AppBar(title: Text("Hero 动画演示( 跳转前页面 )"),),body: ,),);}}

http://www.ppmy.cn/news/779318.html

相关文章

VMware16安装windows server 2022报蓝屏和No Media错误解决办法,图片如下:

下图错误可能是你在创建虚拟机的时候配置文件没有删干净&#xff0c;一定要把配置文件删干净&#xff0c;要不然肯定还会报错。 如果确定删干净了&#xff0c;还是不行&#xff0c;就在换一个同样版本的镜像&#xff0c;重新创建&#xff0c;就能打开虚拟机。并且能成功安装好你…

Android “.nomedia“ 文件的使用方法和原理

系统媒体数据库无法扫描到数据 1.插入一张SDCARD 2.push 3000左右图片到sdcard 3.重启 4.观察发现手机不能读取到图片数据 &#xff08;读取方法&#xff1a;Images.Media.getContentUri(“external”)获取uri, 然后读取数据库&#xff09; 5.push 1首歌曲 6.重启进入music,等待…

视频 服务器运行时失败,Windows Media Player服务器运行失败的解决办法讲解

当大家遇到Windows Media Player服务器运行失败,怎么解决呢?小编给大家分享一个Windows Media Player服务器运行失败的解决办法讲解,希望可以帮到大家。 Windows Media Player服务器运行失败的解决办法讲解 方法1 我们先打开“控制面板”->找到并打开“程序和功能”->…

解决Android图库不识别.nomedia的问题

解决Android图库不识别.nomedia的问题 参考文章&#xff1a; &#xff08;1&#xff09;解决Android图库不识别.nomedia的问题 &#xff08;2&#xff09;https://www.cnblogs.com/TianFang/archive/2012/11/22/2783415.html 备忘一下。

Android避免缓存资源被系统扫描并显示(.nomedia)

app的一些缓存图片理论上是不让出现在相册的 但是相册会扫描出来他可以进行限制 File file new File(filePath "/.nomedia" ); if (!file.exists()){try { file.createNewFile(); } catch (Exception e) { e.printStackTrace(); }} 创建一个nomedia这样在系统…

Android nomedia问题分析

迁移本人cnblog文章: 一、问题起源 最近有同事反馈试用的机器出现问题&#xff0c;图库的照片全部消失&#xff0c;新下载的第三方应用图片&#xff0c;也无法显示。针对该问题&#xff0c;当时以为是媒体库scan过程和数据库存在异常&#xff0c;查了半天无任何结论。内部讨论…

android media的文件类型,NOMEDIA 文件扩展名: 它是什么以及如何打开它?

NOMEDIA 文件疑难解答 打开 NOMEDIA 文件的麻烦 StudioKUMA .nomedia Manager 不存在 双击你的 NOMEDIA 文件会提示消息 “%%os%% 无法打开 NOMEDIA 文件”。 通常&#xff0c;这是因为你没有安装适用于 %%os%% 的 StudioKUMA .nomedia Manager。 操作系统不知道如何处理你的 N…

zabbix 报错No media defined for user.

zabbix3.4页面的报错如下 经查看&#xff0c;报错的用户是有一个没有媒介&#xff0c;于是去改用户查看用了哪几个媒介&#xff0c;只有三个媒介&#xff0c; 去查看哪些动作使用了这个用户&#xff0c;&#xff1a; 发现使用了此用户的这个动作所使用的媒介在用户那里并没配…