Flutter Web 调试问题: Assertion Failed on Text Input Click in Chrome (Flutter 3.27.0, Dart 3.6.0)

前置条件

  • Flutter 版本: 3.27.0 / 3.27.1
  • Dart 版本: 3.6.0
  • 编译器: Android Studio Ladybug | 2024.2.1 Patch 3
  • 操作系统: macOS Sequoia 15.2 (Apple M2) / Windows 11 专业版 23H2
  • 浏览器: Chrome (131.0.6778.205)

问题描述

直接从 Flutter API 官方页面(Form Class Documentation)复制 Form 示例,并使用 Flutter 的 Web 调试模式运行。

尝试用鼠标单击文本输入时,遇到以下错误:

这个问题是 Flutter 3.27.0 / 3.27.1 的缺陷,官方已经在 Flutter 3.28 版本修复,后续升级到 Flutter 3.28 即可解决此问题。

目前(2024/12/23master 通道已经修复这个问题,可以通过切换到 master 通道来解决:

参考链接


启动C:\Windows\System32\logiLDA.DLL时出现问题,找不到指定模块

Windows 11 每次开机都会弹出下图所示的信息:

经过查找是罗技鼠标驱动的问题,驱动卸载之后,系统重启还是会弹对话框。

具体做法是:

1. 运行、输入 regedit

2. 找到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run 目录下的 Logitech Download Assistant

3. 右键删除即可

参考链接


Windows 11 Version 21H2 更新提示 “你的设备缺少重要的安全更新。”

最近 (2024/12/24) 家里的电脑在 Windows 更新界面提示 “你的设备缺少重要的安全更新。请确保设备保持打开状态并接通电源,以便更新可以完成。”

如下图:

不管如何点击刷新重试,都会出现上述提示。

系统版本为 Windows 11 Version 21H2,详细信息参考下图:

原因为 Windows 11 Version 21H2 已经在 2023/10/10 终止服务,所以已经无法更新系统补丁。如下图:

解决方法就是安装依旧提供支持的系统版本 Windows 11 Version 23H2 或者 Windows 11 Version 24H2

需要注意的是,升级到  24H2 无法保留已经安装的软件,因此当前 (2024/12/24) 只能升级到 23H2  。

对于不支持的硬件进行升级安装,可以通过 Rufus 写入到 U盘后,不重启电脑,直接点击 U 盘上的安装文件进行安装,可以正常完成系统升级。

如下图:

点击开始会弹出如下信息,保持信息不变即可,如下图:

参考链接


OpenSCAD圆角矩形

OpenSCAD实现圆角矩形,可以参考如下代码:

参考链接


Way to round edges of objects opensCAD

Could not find a command named "/data/Android/flutter/bin/cache/dart-sdk/bin/snapshots/frontend_server.dart.snapshot"

经过多次的 Flutter 版本升级,以前的老项目脚本在执行 flutter pub get 相关的命令时候报错如下:

解决方法为删除项目下的所有 pubspec.lock 文件即可。

参考链接


Flutter 错误:找不到名为 frontend_server.dart.snapshot 的命令

Caught error: Unsupported operation: Platform._operatingSystem

Flutter 代码运行在 Chrome 上的时候报错 “Caught error: Unsupported operation: Platform._operatingSystem”。

报错的原因是因为代码中使用了 Platform.isIOSPlatform.isAndroid 等函数判断系统类型,可惜的是,这些函数并不能在 Chrome 上运行。 

修改方法就是自己封装一个自定义工具类,先使用 kIsWeb 排除一下浏览器。参考如下:

参考链接


Flutter Web 警告 Local variable for "serviceWorkerVersion" is deprecated

升级到 Flutter 3.22.0 之后,在 Chrome 上运行 Flutter Web 应用程序时收到以下警告:

这个警告的原因是,新版本的 Flutter Web 应用加载 service_worker.js 的方式发生了变化,原来的加载脚本被 {{flutter_bootstrap_js}} 替代。

调整为新的初始化代码即可解决此问题。

原始的代码如下:

调整后的代码如下:

参考链接


Ubuntu 22.04 LTS 中安装经典 GNOME Flashback 指南

GNOME Flashback(又名 classic GNOME)是旧 GNOME 3 shell 的一个分支,它使用早期 GNOME 2 技术的布局和原则。它的速度快如闪电,并且在设计上非常轻量级。因此,它非常适合几十年前的老旧硬件。

随着带有现代 GNOME 42 的 Ubuntu 22.04 LTS 的发布,有必要寻找轻量级的桌面环境选项。

此外,GNOME Flashback 很容易安装在现代 Ubuntu Linux 中,你仍然可以享受 Ubuntu 性能而不必关心 GNOME 42、GTK4、libadwaita 之类的东西。

在 Ubuntu 22.04 LTS 中下载并安装经典 GNOME Flashback

按照以下步骤在 Ubuntu 22.04 LTS 中下载并安装经典 GNOME Flashback(Metacity)。

在 Ubuntu 22.04 LTS 中打开终端(CTRL+ALT+T)并运行以下命令。安装大小约为 61MB。

Install GNOME Classic Flashback Metacity in Ubuntu 22.04 LTS
Install GNOME Classic Flashback Metacity in Ubuntu 22.04 LTS

最后,安装完成后,退出。重新登录时,在登录选项中使用经典的 GNOME Flashback(Metacity) 。

Choose GNOME Classic while logging in
Choose GNOME Classic while logging in

经典 GNOME Flashback 的特点

首先,当你登录时,你将体验到传统的 GNOME 技术,它已被证明具有良好的生产力,并且比今天的技术快得多。

在顶部有旧版的面板,左侧是应用菜单,而系统托盘位于桌面的右上方。应用程序菜单显示所有已安装的应用和软件快捷方式,你可以在工作流程中轻松浏览。

此外,在右侧部分,系统托盘具有默认小部件,例如网络、音量控制、日期和时间以及关机菜单。

Classic GNOME Flashback Metacity in Ubuntu 22.04 LTS
Classic GNOME Flashback Metacity in Ubuntu 22.04 LTS

底部面板包含打开的窗口和工作区切换器的应用列表。默认情况下,它为你提供四个工作区供你使用。

此外,你可以随时更改顶部面板的设置以自动隐藏、调整面板大小和背景颜色。

除此之外,你可以通过 ALT + 右键点击 顶部面板添加任意数量的旧版小程序。

Panel Context Menu
Panel Context Menu

 

Add to panel widgets
Add to panel widgets

经典 GNOME 的性能

首先,磁盘空间占用极小,仅安装 61 MB。我的测试使用了大约 28% 的内存,其中大部分被其他进程占用。猜猜是谁?是的,是 snap-store(又名 Ubuntu 软件)。

因此,总体而言,它非常轻巧,内存(仅 28 MB)和 CPU(0.1%)占用空间非常小。

Performance of GNOME Classic in Ubuntu 22.04
Performance of GNOME Classic in Ubuntu 22.04

此外,假设你将其与同样使用相同技术的 Ubuntu MATE 进行比较。在这种情况下,它比 MATE 更轻量,因为你不需要任何额外的 MATE 应用及其用于通知、主题和其他附加资源的软件包。

结束语

我希望本指南在你决定在 Ubuntu 22.04 LTS Jammy Jellyfish 中安装经典 GNOME 之前帮助你获得必要的信息。

参考链接


Flutter error G5FE39F1E: Type 'UnmodifiableUint8ListView' not found

问题描述

原本在 macOS 开发的项目,现在 Windows 10 运行时报如下错误:

解决方法

参考链接


Flutter Error: Type ‘UnmodifiableUint8ListView‘ not found

2023年下半年系统架构设计师下午论文真题

试题一 论边缘计算及其应用

边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台(架构),就近提供边缘智能服务。边缘计算与云计算各有所长,云计算擅长全局性、非实时、长周期的大数据处理与分析,能够在长周期维护、业务决策支撑等领域发挥优势;边缘计算更适用局部性、实时、短周期数据的处理与分析,能更好地支撑本地业务的实时智能化决策与执行。因此边缘计算与云计算之间不是替代关系,而是互补协同关系,边云协同将放大边缘计算与云计算的应用价值。

请围绕“论边缘计算及其应用”论题,依次从以下三个方面进行论述。

1.概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。

2.结合项目实际,概要说明六种边云协同,既资源协同、数据协同、智能协同、应用管理协同、业务管理协同、服务协同的含义。

3.具体阐述你参与管理和开发的项目如何利用边缘计算进行设计与实现。

试题二 论多源数据集成及应用

在如今信息爆炸的时代,企业、组织和个人面临着大量的数据。这些数据来自不同的渠道和资源,包括传感器、社交媒体、销售记录等,它们各自具有不同的数据格式、分布和存储方式。因此如何收集、整理和清洗数据,以建立一个一致、完整的数据集尤为重要。多源数据集成可以提供更全面的数据视角,将来自不同渠道的数据结合起来,通过这种方式整合多个数据源,从而减少单一数据源带来的误差和不准确性。此外,多源数据集成还可以帮助识别和矫正数据中的错误和重复项,提高数据的质量。

请围绕“论多源数据集成及应用”论题,依次从以下三个方面进行论述。

1.概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。

2.结合项目实际,详细说明多源数据集成的策略有哪些。

3.具体阐述你参与管理和开发的项目如何基于多源数据集成进行设计与实现。

试题三 论面向对象的建模及应用

软件系统建模是软件开发中的重要环节,通过构建软件系统模型可以帮助系统开发人员理解系统,抽取业务过程和管理系统的复杂性,也可以方便各类人员之间的交流。软件系统建模是在系统需求分析和系统实现之间架起的一座桥梁,系统开发人员按照软件系统模型开发出符合设计目标的软件系统,并基于该模型进行软件的维护和改进。

请围绕“论面向对象的建模及应用”论题,依次从以下三个方面进行论述。

1.概要叙述你参与的软件系统开发项目以及你所担任的主要工作。

2.说明什么是用例模型和分析模型以及你所参与的项目中是如何使用这两种模型的。

3.详细说明你所参与的软件系统开发项目在使用用例模型和分析模型的过程中遇到哪些问题,是如何解决的。

试题四 论软件的可靠性评价

软件可靠性评价是软件可靠性活动的重要组成部分,既适用于软件开发过程,也可针对最终软件系统。在软件开发过程中使用软件可靠性评价,可以使用软件可靠性模型,估计软件当前的可靠性,以确认是否可以终止测试并发布软件,同时还可以预计软件要达到相应的可靠性水平所需要的时间和工作量,评价提交软件时的软件可靠性水平。对于最终软件产品,软件可靠性评价结合可靠性验证测试,确认软件的执行与需求的一致性,确定最终软件产品所达到的可靠性水平。

请围绕“论软件的可靠性评价”论题,依次从以下三个方面进行论述。

1.概要叙述你参与开发的软件项目以及你在其中所承担的主要工作。

2.说明可靠性模型有哪些,以及如何选择合适的可靠性模型。

3.具体阐述你参与开发的项目如何对选用的可靠性模型进行分析来进行可靠性评价的。

参考链接


2023年下半年系统架构设计师下午论文真题