flutter开发中的几个小技巧

简介: 提高flutter attach的成功率方案1断开wifi,执行flutter attach,attach成功后再链接wifi

提高flutter attach的成功率

方案1

断开wifi,执行flutter attach,attach成功后再链接wifi

方案2

通过指定设备uuid进行attach

  1. 通过flutter devices查找已链接设备列表,获取链接设备的uuid
  2. flutter attach -d <#uuid#> 指定想要attach的设备进行连接,例如flutter attach -d AE5D772C-6D56-43AD-83F2-0554257B16C4

方案3

通过指定应用的app-id进行attach

  1. 同一wifi环境下如果有多台相同项目设备连接中,找到你需要attach的app-id进行连接
  2. 执行:flutter attach --app-id <#app_id#>例如:flutter attach --app-id com.xxx.xxx

从package中加载json文件

背景

例如我这里有一个flutter的demo项目叫flutter_demo_package_json_load,在根目录通过命令:flutter create --template=package json_test_package,创建了一个名为json_test_package的package,在package的assets中有一个为test2.json文件,现在需要在package中加载到改文件。

从工程加载json

对于普通项目的json文件,加载方式如下:

  1. 在项目中添加json文件,例如项目的assets下有一个名为test1.json的文件
  2. 我们在yaml中添加如下依赖
# 只加载assets下的test1.json文件
assets:
  - assets/test1.json
# 或者
# 加载assets下的所有文件
 assets:
  - assets/
复制代码
  1. 通过rootBundle加载
Future<String> _loadFromProjectAsset() async {
  // json file in project,is ok
  return rootBundle.loadString("assets/test1.json");
}
复制代码

但是对于package下面json文件上面的方法失效了,使用上面的方法加载将会报错,错误信息如下:

网络异常,图片无法展示
|

错误原因是资源路径不对,加载不到,因为rootBundle类没有提供package name的参数,我们只能把package name信息放在资源路径里面。

从package加载json

灵感来自pub.dev/packages/lo…: “package_name”)`方法,因为lottie实现动画的原理也是加载一份json配置,不过这个方法支持指定package配置。

网络异常,图片无法展示
|

这里的keyName就是我们rootBundle类里面需要用的资源路径,包含带package的情况。

正确的方式如下:

  1. 第一步和上面一样,将json文件添加到工程中,假如这里我们package里面的json文件名为test2.json
  2. 在yaml中添加如下依赖
# 只加载assets下的test2.json文件
assets:
 - assets/test2.json
# 或者
# 加载assets下的所有文件
assets:
 - assets/
复制代码
  1. 通过rootBundle加载,但是path的格式为 packages/<#package_name#>/<#file_path#>

这里为

// json file in package,this is work
Future<String> _loadFromPackageAsset() async {
  // 【importance】 packag json file need use this formate:
  // `packages/$package/$assetName`
  return rootBundle.loadString("packages/json_test_package/assets/test2.json");
}
复制代码

通过DefaultAssetBundle也是一样可以

// This is work too.
Future<String> testLoadJsonFileByDefaultAssetBundle(BuildContext context) {
  // 【importance】 packag json file need use this formate:
  // `packages/$package/$assetName`
  return DefaultAssetBundle.of(context)
      .loadString('packages/json_test_package/assets/test2.json');
}
复制代码

Demo链接


相关文章
|
4月前
Flutter 小技巧之 ListView 和 PageView 的各种花式嵌套
Flutter 小技巧之 ListView 和 PageView 的各种花式嵌套 在 Flutter 中,ListView 和 PageView 是两个常用的控件,它们可以用于滑动展示大量内容的场景,且支持各种嵌套方式,本文将介绍其中的一些花式嵌套方式。
Doodle Jump — 使用Flutter&Flame开发游戏真不错!
用Flutter&Flame开发游戏是一种什么体验?最近网上冲浪的时候,我偶然发现了一个国外的游戏网站,类似于国内的4399。在浏览时,我遇到了一款经典的小游戏:Doodle Jump...
|
3月前
|
安全 Go 数据安全/隐私保护
Flutter开发笔记:Flutter路由技术
Flutter开发笔记:Flutter路由技术
333 0
|
10天前
|
移动开发 前端开发 JavaScript
移动端 Hybrid 开发:RN、Flutter与Webview的抉择与融合
【4月更文挑战第6天】本文对比了移动端Hybrid开发的三种主流方案——React Native (RN),Flutter和Webview。RN基于JavaScript,适合React熟练的团队,适用于性能要求高、跨平台的中大型应用。Flutter,使用Dart语言,以其高性能和自定义UI适用于追求极致体验的项目。Webview适合快速移植Web应用至移动端,开发成本低但性能受限。选择时要考虑项目规模、性能需求、团队技术栈等因素,实际应用中常采用混合策略,如RN/Flutter+Webview、原生模块集成等,以实现最佳开发效果和长期技术规划。
51 0
|
3月前
|
开发者 索引 容器
Flutter开发笔记:Flutter 布局相关组件
Flutter开发笔记:Flutter 布局相关组件
119 0
|
3月前
|
开发框架 Dart 开发工具
从零基础到精通:Flutter开发的完整指南
从零基础到精通:Flutter开发的完整指南
112 0
|
4月前
|
存储 网络安全 数据库
flutter怎样使用阿里云开发服务?
flutter怎样使用阿里云开发服务?
101 2
|
4月前
|
Dart 监控 开发者
跨平台应用的选择:Flutter下电脑局域网控制软件开发
近年来,跨平台应用的需求不断增加,开发人员纷纷寻找适用于多种操作系统的解决方案。本文将探讨在Flutter框架下开发电脑局域网控制软件的过程,并提供一些实用的代码示例。
234 1
|
4月前
|
存储 网络安全 数据库
flutter怎样使用阿里云开发服务?
flutter怎样使用阿里云开发服务?
54 0