flutter环境配置中遇到的问题

flutter环境配置中遇到的问题


在配置鸿蒙SDK环境变量步骤中,我不知到如何来添加系统变量,在我看的教程中,那一部分写的有些模糊,况且我是第一次接触系统变量和用户变量这些东西,根本不知道是干什么的,所以,为了让第一次配置的新手能跟清楚一些,我们先来了解一下系统变量和用户变量的本质、区别与实战意义:

系统变量和用户变量是 操作系统中用于存储程序运行配置的核心机制 ,本质是"键值对"(变量名=变量值)形式的"全局参数"------核心作用是告诉电脑"去哪里找软件""怎么运行软件",我们配置Flutter、Git时用到的Path变量,就是最典型的应用场景。

一、先明确:环境变量(总称)是什么?

环境变量是操作系统为所有程序提供的"公共配置容器",可以理解为电脑的 "全局通讯录+运行规则手册"

  • 变量名:固定标识(比如PathJAVA_HOME),相当于"通讯录里的联系人姓名";
  • 变量值:具体的路径或配置(比如C:\Git\bin),相当于"联系人的详细地址"。

核心作用(解决的实际问题)

  1. 无需输入完整路径就能运行程序:比如输入flutter --version时,系统会通过Path变量里的路径,自动找到flutter.exe并运行,不用手动输入D:\flutter\bin\flutter.exe
  2. 统一传递配置信息:比如JAVA_HOME变量告诉所有Java相关工具"JDK安装在哪个文件夹",避免每个工具都手动配置。

二、系统变量 vs 用户变量:核心区别(表格对比)

环境变量分为"系统变量"和"用户变量",关键差异在 "生效范围",其他特性随之不同:

对比维度 系统变量(System Variables) 用户变量(User Variables)
生效范围 电脑上所有用户账号共用(全局生效) 仅当前登录的用户账号可用(局部生效)
权限要求 编辑需管理员权限(影响全局,需谨慎) 普通用户可直接编辑(仅影响自己,无风险)
适用场景 所有用户都需要用的软件/工具(比如Git、Windows系统命令) 仅个人使用的软件(比如专属开发工具、个性化配置)
优先级 与用户变量同名时,用户变量优先级更高 不影响其他用户,独立隔离
典型例子 C:\Windows\System32(系统命令路径)、C:\Git\bin(全局Git路径) D:\MyTools\flutter\bin(个人Flutter路径)

通俗类比(一看就懂)

把电脑想象成"一套房子":

  • 系统变量 = 房子里的"公共设施清单"(比如水电总阀位置、快递收发点),所有住客(用户账号)都能使用;
  • 用户变量 = 你自己房间里的"私人用品清单"(比如你的书桌抽屉位置、私人工具箱),只有你能用到,不影响其他住客。

三、实战场景:为什么配置软件时要区分这两类变量?

以你之前配置Flutter和Git为例,核心逻辑是:

  1. 配置Git到系统变量:因为Git可能全家都要用(比如家人也需要用命令行提交代码),全局生效更方便,且系统工具(如Flutter)需要全局调用Git;
  2. 配置Flutter到用户变量:如果只是你自己用Flutter开发,配在用户变量里即可,避免占用系统全局资源,也不会影响其他用户的环境;
  3. Path变量是核心 :不管是系统变量还是用户变量里的Path,本质都是"程序查找路径清单"------只有把软件的bin目录(比如flutter\binGit\bin)加入Path,才能直接在命令行输入命令运行。

四、常见问题:为什么之前配置时系统变量的Path很关键?

你之前遇到的"闪退""找不到git"问题,本质都是Path变量配置不全:

  • 缺少C:\Windows\System32:系统找不到wherecmd等基础命令,导致程序运行时依赖缺失;
  • 缺少C:\Git\bin:Flutter运行时需要调用Git,但系统找不到Git的执行文件,直接闪退;
  • 补充路径后生效:相当于给系统补全了"通讯录",程序能顺利找到依赖的工具,自然就能正常运行。

总结

  • 核心逻辑:系统变量和用户变量都是"配置容器",区别仅在"生效范围";
  • 实用原则:
    1. 全家共用的软件(Git、Java、系统工具)→ 配系统变量;
    2. 个人专属的软件(开发工具、个性化工具)→ 配用户变量;
    3. 所有需要在命令行直接运行的软件,必须把其bin目录加入Path变量(系统或用户的Path均可,看需求)。

简单说:系统变量管"所有人",用户变量管"你自己",Path变量管"程序能不能直接运行"。

了解完这些后,接下来,我们来进行配置鸿蒙SDK环境变量

  1. 右键点击我们电脑桌面上的此电脑,再点击属性,点进去后,再点击高级系统设置,最后点击环境变量就进入了我们要进行编辑的页面了



  2. 在该页面中,应该找到系统变量中变量名为path的变量,双击改变量进如编辑页面,然后找到自己电脑中下载DevEco Stduio的位置,复制如下几个文件位置,编辑添加到path变量里,这里不要看我写的位置找一样的,你是找不到的,因为我们电脑中下载的位置不一样,你只找到自己下载DevEco Stduio的位置,找到后面的就行了:

    D:\vs code\dev\DevEco Studio\sdk\default\openharmony\toolchains

    D:\vs code\dev\DevEco Studio\tools\ohpm\bin

    D:\vs code\dev\DevEco Studio\tools\node

    D:\vs code\dev\DevEco Studio\tools\hvigor\bin

    添加到这个path里面:

    然后把上面四个变量添加进去就好了:


    以上我只示范了一个,其他的重复操作就好了。
    在这里我声明一下,我的系统变量中没有path这个变量,而是在我的用户变量中,我也不知道是什么原因,可能是电脑的问题,你们在进行添加这一步的时候,要先在自己的系统变量中找一下,找到了就在系统变量的path中添加上述的四个变量,如果系统变量中没有,那就在环境变量中找,反正这两个里面肯定是有的

  3. 接下来要在系统变量里新建一个变量名为DEVECO_SDK_HOME的变量

    ,变量值为,也就是位置:

    D:\vs code\dev\DevEco Studio\sdk

    这里你只要找到你电脑中下载DevEco Studio中sdk的系统位置即可,把位置复制好粘贴上去即可,下面的图片是操作步骤:

    弄完点击确定就好了

接下来是下载适配鸿蒙的flutter SDK

  1. 先创建一个专门防止flutter的文件夹

  2. 点完之后出现黑色控制面板,复制下面的代码,粘贴到控制面板里,点击回车就好了

    git clone -b oh-3.27.4-dev https://gitcode.com/openharmony-tpc/flutter_flutter.git

出现下面的页面就下载好了

接下来配置环境环境变量:

如图,在刚才创建好的flutter文件夹里找到该文件位置:

D:\Flutter\flutter_flutter\bin

粘贴完之后再添加到path里,如下图就可以了:

接下来在系统变量里添加下面两个变量

第一个变量名为:PUB_HOSTED_URL

变量值为:https://pub.flutter-io.cn

第二个变量名为:https://pub.flutter-io.cn

变量值为:https://storage.flutter-io.cn

这些都按照我的复制添加上即可:

配置完成后一直点击确定就可以了

接下来检查flutter的版本

  1. 在键盘上点击Win+R,输入cmd,打开这个界面

  2. 解下来输入这行代码

    flutter --version

点击回车,出现下面这些就好了

接下来诊断flutter环境

按上面1中的步骤,打开,输入以下代码

复制代码
flutter doctor -v

出现以下内容就好了

在这里说一下我在其中遇到的问题我在检查flutter的环境的时候,输入下面的代码后,一点击回车

这个页面就突然闪退,消失不见了,当时我不知道怎么回事,于是把这个问题告诉给了豆包,来让它帮我解决,最后我找到了问题所在,是因为系统找不到git程序的路径,于是我找到git软件的位置,但是我之前就安装了git了,原来是Git 的环境变量没配置好于是我在path中配置了Git 的环境变量

位置:D:\git\Git\bin

这样问题就解决了

相关推荐
renxhui1 小时前
Dart 速通攻略(面向 Android 工程师)
android·flutter·dart
勇气要爆发5 小时前
【第五阶段—高级特性和架构】第七章:CustomPainter—绘图大师
flutter
用户7502734994775 小时前
我用百度文心快码开发了一款积木工坊:用AI让每个孩子都成为小小建筑师
flutter
名字被你们想完了6 小时前
Flutter 实现一个容器内部元素可平移、缩放和旋转等功能(一)
flutter
灰灰勇闯IT6 小时前
Flutter×VS Code:跨端开发的高效协作指南(2025最新配置)
笔记·flutter·harmonyos
●VON7 小时前
Flutter vs React Native vs 原生开发:有何不同?
学习·flutter·react native·react.js·openharmony
白茶三许7 小时前
【OpenHarmony】深入理解 Flutter 异步编程:从基础到实战
flutter·开源·openharmony·gitcode
西西学代码7 小时前
flutter---日历
flutter
kirk_wang7 小时前
Flutter 桌面/Web 开发:用 MouseRegion 打造原生级交互体验
前端·flutter·交互