flutter项目打包运行成桌面程序
1、安装go环境编译环境
下载地址 安装完配置环境变量把C:\Go\bin加入到PATH里面,然后打开cmd输入命令行go可以查看下环境是否OK
命令 go env
2、安装完go环境之后,然后下载一个hover库
go get -u github.com/go-flutter-desktop/hover
3 .如果下载失败,换下面地址重新下载就可以完成
换一个国内能访问的代理地址:https://goproxy.cn
执行命令:
go env -w GOPROXY=https://goproxy.cn
4、准备一个flutter项目,我就拿android studio创建的初始demo来演示了。
创建好demo后,里面不是有一个main.dart吗?
创建一个main_desktop.dart,这个文件和mian.dart同一个目录
然后把main.dart的内容复制到main_desktop.dart里面,修改下一个地方
例如main.dart的是
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
那么我的main_desktop.dart文件就是这样的
import 'package:flutter/material.dart' show debugDefaultTargetPlatformOverride;
import 'package:flutter/foundation.dart'
show debugDefaultTargetPlatformOverride;
import 'package:flutter/material.dart';
import 'main.dart';
void main() {
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia; //这句话很关键
runApp(MyApp());
}
5.初始化,并打包(项目的根目录下,执行下面命令)
hover init github.com/my-organization/toly_flutter #前面的地址固定,后面写你项目的名字
就会出现一个go文件夹
生成这个文件之后再执行,
hover run
如你需要以热加载启动app,请在当前命令行中执行hover run,注意,此时会联网下载一些依赖,会耗费一些时间,而且还要看人品,根据自己的网络情况,翻墙也是很有可能的。如果你在后台使用了Socks5代理,则会发生远程服务器关闭连接的错误,请关闭Socks5代理,开启Http代理
依赖准备完成后,会启动app
你又会发现报错:exec: “gcc”: executable file not found in %PATH%这是缺少一个环境变量,别急,补上去,
https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
安装可以用Installer也可直接下载下面的压缩包
使用installer安装的话,下载并运行MinGW-W64-install.exe
如下所示
下面对几个选项给出说明
1.Version制定版本号,从4.9.1-8.1.0,按需选择,没有特殊要求就用最新版吧;
2.Architecture跟操作系统有关,64位系统选择x86_64,32位系统选择i686;
3.Threads设置线程标准可选posix或win32;
4.Exception设置异常处理系统,x86_64可选为seh和sjlj,i686为dwarf和sjlj;
5. Build revision构建版本号,选择最大即可。
下载压缩包的话,选择合适位置解压,将mingw64/bin加入环境变量即可使用
添加环境变量后,打开CMD,执行gcc -v
能看到类似信息即说明安装成功
恭喜安装成功,然后回过头,关闭cmd,重新执行
hover run
出现这个
cmd进入flutter项目文件夹路径,输入指令hover run。等待执行完成。然后就出现了桌面程序了
变身!!!!!
如图的路径就是打包后生成的exe文件,双击执行,就好了。