首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >flutter项目打包发布windows可执行文件

flutter项目打包发布windows可执行文件

作者头像
徐建国
发布2021-11-30 20:12:52
发布2021-11-30 20:12:52
2.8K0
举报
文章被收录于专栏:个人路线个人路线

接上篇

8发布windows版

image-20210928095003619
image-20210928095003619

我们希望你完成迁移后尽快将其发布,可以作为预览版:

参考文章:https://dart.cn/null-safety/migration-guide

迁移桌面 flutter config --enable--desktop

image-20210927100236887
image-20210927100236887

1.为现有的 Flutter 应用程序添加桌面支持

要将桌面支持添加到现有 Flutter 项目,请从项目根目录在终端中运行以下命令:

代码语言:javascript
复制
$ flutter create --platforms=windows,macos,linux .

这会将必要的桌面文件和目录添加到您现有的 Flutter 项目中。要仅添加特定桌面平台,请将platforms列表更改为仅包含您要添加的平台。

image-20210927100948120
image-20210927100948120

必须下载vs

https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=16

可以看到build目录下已经有windows

image-20210928082949206
image-20210928082949206

2..创建main_desktop.dart文件

比如我的main.dart文件是这样的

代码语言:javascript
复制
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:news/screens/main/main_screen.dart';

import 'constants.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      debugShowCheckedModeBanner: false, //取消debug图标
      title: 'Flutter Demo',
      theme: ThemeData(
        primaryColor: kPrimaryColor,
        scaffoldBackgroundColor: kBgColor,
        elevatedButtonTheme: ElevatedButtonThemeData(
          style: TextButton.styleFrom(backgroundColor: kPrimaryColor),
        ),
        textTheme: TextTheme(
          bodyText1: TextStyle(color: kBodyTextColor),
          bodyText2: TextStyle(color: kBodyTextColor),
          headline5: TextStyle(color: kDarkBlackColor),
        ),
      ),
      home: MainScreen(),
    );
  }
}

那么我的main_desktop.dart文件就是这样的

代码语言:javascript
复制
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:news/screens/main/main_screen.dart';
import 'package:flutter/foundation.dart' show debugDefaultTargetPlatformOverride;
import 'constants.dart';

void main() {
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;//这句话很关键
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      debugShowCheckedModeBanner: false, //取消debug图标
      title: 'Flutter Demo',
      theme: ThemeData(
        primaryColor: kPrimaryColor,
        scaffoldBackgroundColor: kBgColor,
        elevatedButtonTheme: ElevatedButtonThemeData(
          style: TextButton.styleFrom(backgroundColor: kPrimaryColor),
        ),
        textTheme: TextTheme(
          bodyText1: TextStyle(color: kBodyTextColor),
          bodyText2: TextStyle(color: kBodyTextColor),
          headline5: TextStyle(color: kDarkBlackColor),
        ),
      ),
      home: MainScreen(),
    );
  }
}

flutter和go都是google出品,如何安装做一下不做介绍

3.hover安装和环境配置

代码语言:javascript
复制
go get -u github.com/go-flutter-desktop/hover

稍等会hover就会出现在go语言的SDK下面的bin文件夹下

image-20210928084124073
image-20210928084124073

你又会发现报错:**exec: "gcc": executable file not found in %PATH%**这是缺少一个环境变量,别急,补上去,https://sourceforge.net/projects/mingw-w64/files/mingw-w64/

image-20210928084641518
image-20210928084641518
img
img
img
img
image-20210928084842376
image-20210928084842376
img
img

安装过程会下载很多东西,都到这一步了,不要放弃,接下来配置环境变量

“C:\Program Files (x86)\mingw-w64\i686-6.2.0-posix-sjlj-rt_v5-rev1\mingw32\bin ”

img
img

4.初始化,并打包

接下来,我们到你的flutter项目的目录下面

代码语言:javascript
复制
hover init github.com/my-organization/flutter_bloc_super #前面的地址固定,后面写你项目的名字

就会出现一个go文件夹

image-20210928091320860
image-20210928091320860

生成这个文件之后再执行,

代码语言:javascript
复制
hover run

最后一步大功告成

变身!!!!! 如图的路径就是打包后生成的exe文件,双击执行,就好了。

image-20210928091457350
image-20210928091457350

坑1

如果报错goland编译报错cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

主要原因是本地的cc1.exe版本不是64位的,在64位环境下无法编译

请下载这个、https://sourceforge.net/projects/mingw-w64/

image-20210928090948605
image-20210928090948605
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 坚果前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 接上篇
  • 8发布windows版
    • 1.为现有的 Flutter 应用程序添加桌面支持
    • 2..创建main_desktop.dart文件
    • 3.hover安装和环境配置
    • 4.初始化,并打包
    • 坑1
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档