Flutter使用问题整理

前言

写这篇文章是为了记录平时在使用flutter时遇到的问题,及解决方案,方便再次遇到时能够快速解决。

问题及解决

问题1

真机运行项目,在构建时提示

Running Gradle task 'assembleDebug'...                             41.8s
[!] App requires Multidex supportMultidex support is required for your android app to build since the number of methods has exceeded 64k. You may pass the --no-multidex flagto skip Flutter's multidex support to use a manual solution.

解决方案:
参考:https://docs.flutter.dev/deployment/android#enabling-multidex-support

在终端上执行 flutter run --debug,当出现Do you want to continue with adding multidex support for Android? [yln]提示时,选择y

问题2
在程序中如何监听某一个变量是否发生了改变

ValueNotifier<int> count = ValueNotifier(0);// 注册监听器
count.addListener(() {print("Count changed: ${count.value}");
});// 修改变量的值
count.value = 1; // Count changed: 1

模拟请求超时
dio中可以判断是否请求超时,最近在做一个功能,需要模拟请求超时。
有时候程序一直在等待执行结果,如果执行时间比较久,就会影响到后续的执行。通过模拟请求超时,来出现长时间的等待问题。

Future<int> performTask() async {await Future.delayed(Duration(seconds: 3)); // 模拟一个耗时的异步操作return 42; // 返回执行结果
}void main() {performTask().timeout(Duration(seconds: 2), onTimeout: () {return -1; // 在超时时返回-1}).then((result) {print('执行结果:$result');}).catchError((error) {print('发生错误:$error');});// 或者int res = await performTask().timeout(Duration(seconds: 2), onTimeout: () {return -1; // 在超时时返回-1}).then((result) {print('执行结果:$result');return result;}).catchError((error) {print('发生错误:$error');});
}

问题3

在使用Android Studio的Device Explorer 向外到处文件时提示:

Error opening contents of device file "hello.txt": Cannot create directory C:\Users\octop\Documents\AndroidStudio\DeviceExplorer\emulator-5554\sdcard\Download\hello

在这里插入图片描述
解决方案:在终端里运行 adb root
如果提示’adb’ 不是内部或外部命令,也不是可运行的程序或批处理文件”,那么就需要配置环境变量。
1、找到sdk所在的文件夹
在这里插入图片描述
在这里插入图片描述
2、在sdk目录里找到adb.exe文件
在这里插入图片描述
3、选择系统变量,在path添加adb程序所在路径
在这里插入图片描述
4、执行完adb root后,重启Android studio后可以顺利到处文件
在这里插入图片描述
问题4
在访问http开头的网络时,报错提示:

WebResourceError{description: net::ERR_CLEARTEXT_NOT_PERMITTED, type: UNKNOWN}

原因是:从Android 9(API级别28)开始,默认情况下,Android应用程序不允许加载不安全的非加密网络资源。这意味着如果你的应用程序尝试加载使用HTTP协议的资源,将会引发net::ERR_CLEARTEXT_NOT_PERMITTED错误。

解决:打开android/app/src/main/AndroidManifest.xml 文件,添加 android:usesCleartextTraffic="true" 再重新编译程序
在这里插入图片描述
问题5
有时候会遇到这样的app,在启动时需要授予权限,当拒绝授予权限后,app会自动退出。这个功能可以基于permission_handlerEasyLoading 两个插件来实现,关于这两个插件的基本使用见:

Flutter:视频下载案例

Flutter:EasyLoading(loading加载、消息提示)

代码如下,需要在main.dart里使用

class MyApp extends StatelessWidget {const MyApp({super.key});// 应用权限请求void requestMultiplePermissions(BuildContext context) async {Map<Permission, PermissionStatus> status = await [// 网络权限Permission.storage,].request();// 判断是否存在权限未授予的情况bool hasPermission = status.values.every((status) => status.isGranted);if (!hasPermission) {EasyLoading.showToast("获取权限失败,应用无法正常运行");await Future.delayed(const Duration(seconds: 2));exit(0);}}Widget build(BuildContext context) {// 进行权限请求requestMultiplePermissions(context);return  MaterialApp(// 应用的主题、页面等配置home: MyHomePage(),);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV中inRange函数

在OpenCV中&#xff0c;inRange函数用于根据颜色范围从图像中提取特定的颜色区域。这个函数检查输入图像中的每个像素&#xff0c;如果像素值位于指定的范围内&#xff0c;则在输出图像&#xff08;或掩码&#xff09;中对应位置的像素被设置为白色&#xff08;或者说是255&…

消息队列-RabbitMQ:MQ作用分类、RabbitMQ核心概念及消息生产消费调试

1、MQ 的相关概念 1&#xff09;什么是 MQ MQ (message queue)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&#xff0c;只不过队列中存放的内容是 message 而已&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递消息。在互…

Vue报错,xxx is defined #变量未定义

vue.js:5129 [Vue warn]: Error in v-on handler: "ReferenceError: count is not defined" 浏览器将这个变量 当做全局变量了&#xff0c;事实上它只是实例中的变量 加上this指定&#xff0c;是vue实例中的变量

Itext生成pdf文件,html转pdf时中文一直显示不出来

之前使用freemark模板渲染ftl页面,转出的pdf中&#xff0c;css2有些样式好像不支持&#xff0c;比较常用的居中样式都没有效果&#xff0c;text-align:center 改造成使用html页面来转pdf&#xff0c;css2的样式可以生效,itext是不支持css3的弹性布局的ITextRenderer pdfRendere…

AI之Sora:Sora(文本指令生成视频的里程碑模型)的简介(能力/安全性/技术细节)、使用方法、案例应用之详细攻略

AI之Sora&#xff1a;Sora(文本指令生成视频的里程碑模型)的简介(能力/安全性/技术细节)、使用方法、案例应用之详细攻略 导读&#xff1a;Sora 是OpenAI研发的一个可以根据文字描述生成视频的AI模型。它的主要特性、功能以及OpenAI在安全和应用方面的策略的核心要点如下所示&a…

分布式锁的应用场景及实现

文章目录 分布式锁的应用场景及实现1. 应用场景2. 分布式锁原理3. 分布式锁的实现3.1 基于数据库 分布式锁的应用场景及实现 1. 应用场景 电商网站在进行秒杀、特价等大促活动时&#xff0c;面临访问量激增和高并发的挑战。由于活动商品通常是有限库存的&#xff0c;为了避免…

MySQL 基础知识(十)之 MySQL 架构

目录 1 MySQL 架构说明 2 连接层 3 核心业务层 3.1 查询缓存 3.2 解析器 3.3 优化器 3.4 执行器 4 存储引擎层 5 参考文档 1 MySQL 架构说明 下图是 MySQL 5.7 及其之前版本的逻辑架构示意图 MySQL 架构大致可分为以下三层&#xff1a; 连接层&#xff1a;负责跟客户…

[oeasy]python0007_ print函数_字符串_display_电传打字机_程序员的浪漫

你好世界 &#x1f94a; 回忆上次内容 上次 想输出 Hello world&#xff01;据说是程序猿的浪漫 键盘按键作用↑上一条指令↓下一条指令←光标 向左移动 一格→光标 向右移动 一格ctrl a光标 移动到开头ctrl e光标 移动到结尾 了解到 字符串 就是 给一串字符 两边加引号…

19. 【Linux教程】nano 编辑器

前面小节介绍了如何使用 vim 编辑器&#xff0c;相比于 vim 编辑器&#xff0c;nano 编辑器就比较简单了。nano 是 UNIX 系统中的一个文本编辑器&#xff0c;大部分 Linux 发行版本默认都安装了 nano 文本编辑器。 和 vim 编辑器相比&#xff0c;nano 编辑器就没有那么强大&am…

2024.2.19 阿里云Flink

一 、Flink基本介绍 Spark底层是微批处理 , Flink底层则是实时流计算 流式计算特点: 数据是源源不断产生,两大问题,乱序和延迟 Stateful:有状态 Flink的三个部分 Source:Transactions , logs ,iot ,clicks Transformation: 事件驱动 , ETL , 批处理 Sink : 输出 HDFS ,Kaf…

Keil软件生成bin文件

首先需要在keil的魔法棒里将运行脚本加上 加上脚本后&#xff0c;还需要将编译后的文件存放于什么位置 C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o "$LL.bin" "#L" 到这里就可以了

工业智能:基于LSTM的电解槽出铝量预测与可视化系统设计与实现

工业智能&#xff1a;基于LSTM的电解槽出铝量预测与可视化系统设计与实现 工业智能&#xff1a;基于LSTM的电解槽出铝量预测与可视化系统设计与实现项目背景与意义技术与功能介绍系统设计与实现结语 工业智能&#xff1a;基于LSTM的电解槽出铝量预测与可视化系统设计与实现 在…

Mac清理系统垃圾软件CleanMyMac X2025免费版本下载

嘿&#xff0c;Mac用户们&#xff0c;你是否经常感觉你的Mac就像是在背着一个沉重的包袱在跑步&#xff1f;是的&#xff0c;我在说那些堆积如山的系统垃圾。清理这些垃圾不仅可以让你的Mac跑得更快&#xff0c;还能让它“呼吸”更畅快。今天&#xff0c;让我们一起来探索如何M…

一加手机怎么录屏?这个方法请你收好!

“我最近刚换了一加手机&#xff0c;本以为录屏功能会像之前用的手机一样方便找到&#xff0c;但翻遍了设置菜单也没找到。我知道一加手机是支持录屏功能的&#xff0c;所以想请教一下&#xff0c;一加手机的录屏功能在哪里&#xff0c;应该怎么使用&#xff1f;” 随着智能手…

Uniapp-开发小程序

文章目录 前言一、npm run xxx —— cross-env: Permission denied解决方法&#xff08;亲测有效&#xff09;其他解决方法&#xff1a; 二、macOS 微信开发者工具选择uniapp 用 vscode 开发 总结 前言 macOS下 uniapp 开发小程序。 一、npm run xxx —— cross-env: Permissi…

神经网络——循环神经网络(RNN)

神经网络——循环神经网络&#xff08;RNN&#xff09; 文章目录 神经网络——循环神经网络&#xff08;RNN&#xff09;一、循环神经网络&#xff08;RNN&#xff09;二、循环神经网络结构1、一对一&#xff08;One to One&#xff09;2、一对多&#xff08;One to Many&#…

爬虫学习笔记-scrapy爬取电影天堂(双层网址嵌套)

1.终端运行scrapy startproject movie,创建项目 2.接口查找 3.终端cd到spiders,cd scrapy_carhome/scrapy_movie/spiders,运行 scrapy genspider mv https://dy2018.com/ 4.打开mv,编写代码,爬取电影名和网址 5.用爬取的网址请求,使用meta属性传递name ,callback调用自定义的…

C#快速配置NLog日志使用

首先我们需要在Nuget中安装Nlog和Nlog-Schema。 添加配置文件&#xff1a;NLog.config <?xml version"1.0" encoding"utf-8" ?> <nlog xmlns"http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi"http://www.w3.org/2001…

整车 EOL下线 测试系统介绍

EOL测试系统背景 随着国家对环保事业的愈加重视&#xff0c;电动汽车以其绿色清洁的驱动方式&#xff0c;逐渐成为政策扶持 的重点对象。一方面&#xff0c;国家对电动汽车越来越重视&#xff0c;在另外一个方面&#xff0c;人们也越来越乐于绿色 出行&#xff0c;增大了电动汽…

NestJS入门1:创建项目

1.初始化 管理员权限运行CMD进入某个文件夹&#xff0c;输入命令&#xff0c;进行初始化&#xff0c;该命令不在文件夹下产生文件 npm i -g nestjs/cli 2. 创建项目 不需要手工创建文件夹&#xff0c;在原路径下执行以下命令&#xff08;其中nest-start为项目名&#xff0c…