flutter常见问题
flutter相关问题
安装后flutter -h不动
折叠代码块BASH
复制代码
1 | # 这是他在访问github进行fetch,所以会卡住 |
运行flutter doctor提示错误
折叠代码块BASH
复制代码
1 | # 提示少的库就装一下 |
linux相关问题
appimage-builder打包单文件
折叠代码块BASH
复制代码
1 | # 创建 AppDir 用于打包组件的存放 |
具体配置如下
app打包好后,并在运行之前,可能需要一些环境变量,可在runtime,env设置
折叠代码块YML
复制代码
1 | # appimage-builder recipe see https://appimage-builder.readthedocs.io/en/latest/reference/recipe.html for details |
windows相关问题
缺少Nuget
下载Nuget
然后在flutter项目全局搜索Nuget.exe not found,然后进行如下修改
折叠代码块BASH
复制代码
1 | # 找到这两行 |
Inno Setup Compiler打包程序
好处
- 用于打包可安装文件,也就是需要安装时解压的软件
- 打包后可安装测试缺少什么
dll库
使用流程
- 将所需库文件复制到
build/windows/runner/Release File ->New ->Next- 填写应用信息,Next
- 填写应用文件夹名,Next
- 选取flutter编译后的可执行文件路径(
build/windows/runner/Release/xx.exe) - 添加文件,选flutter编译后的dll库(
build/windows/runner/Release/xx.dll) - 添加文件夹,选flutter的数据文件夹(
build/windows/runner/Release/data)。然后Next- 添加文件夹时,无法包括文件夹本身的目录
- 可以在
data文件夹同级目录创建一个temp_data文件夹 - 将
data文件夹复制到temp_data,然后选temp_data
- 修改应用文件类型名与扩展名,Next到自定义设置
- 修改打包后exe输出文件夹,编译输出基本文件名,icon图标,Next到Finish
- 然后打包即可,脚本可以不用保存
Enigma Virtual Box打包程序
好处
- 用于打包可单独执行文件
坏处
- 可能报毒
使用流程
- 将所需库文件复制到
build/windows/runner/Release - 选择flutter编译后的可执行文件路径(
build/windows/runner/Release/xx.exe) - 增加文件,选flutter编译后的dll库(
build/windows/runner/Release/xx.dll) - 创建虚拟文件夹
data - 增加flutter的数据文件夹(
build/windows/runner/Release/data) 文件选项点击压缩文件- 执行封包。封包程序在
build/windows/runner/Release/xx_box.exe
所需库文件
由于不同电脑上可能不一定有需要的运行库,所以这里列一些常用的缺失运行库
可以按需使用
修改图标
在windows/runner/resources下,必须为ico图标,最好用windows的画图保存成ico格式
macos相关问题
构建后没有网络 Unhandled Exception: Connection failed
需要申请相关网络权限
在macos/Runner/DebugProfile.entitlements和macos/Runner/Release.entitlements添加如下权限
折叠代码块XML
复制代码
1 | <key>com.apple.security.network.client</key> |
播放http(非https)链接时报错
因为http不安全,所以需要相关权限
在macos/Runner/Info.plist添加如下权限
折叠代码块XML
复制代码
1 | <key>NSAppTransportSecurity</key> |
电脑构建缓慢
macos构建也可以使用github action自动构建,会快很多
修改图标
在macos/Runner/Assets.xcassets/AppIcon.appiconset替换图标,不能直接改名,图标需要保存成指定的像素值
android相关问题
命令行配置AndroidSDK
gradle构建不动
折叠代码块BASH
复制代码
1 | # 可能可gradle的仓库有关系 |
MissingPluginException(No implementation found for method getApplicationDocumentsDirectory on channel plugins.flutter.io/path_provider)
可以卸载手机软件后重装
vscode remote adb连接手机
也就是服务器开发android,远程连接手机测试
折叠代码块BASH
复制代码
1 | # 本地启动adb服务器 |
android使用无线网调试手机
折叠代码块BASH
复制代码
1 | # 先用数据线链接手机,打开调试,查看设备是否连接上 |
编译打包老是出错
折叠代码块BASH
复制代码
1 | # 可以安装一下旧版本的build-tools,用于适应老版本手机 |
- 本文标题:flutter常见问题
- 创建时间:2023-04-10 21:44:19
- 本文链接:https://blog.212490197.xyz/article/program/flutter/some-questions/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
复制版权信息
v1.5.2