清晰易懂的 Flutter 卸载和清理教程
以下是为 Flutter 彻底卸载与清理教程,覆盖 Windows、macOS、Linux 系统,步骤清晰无残留,确保完全删除 Flutter SDK、依赖工具及 IDE 配置。
一、通用步骤:确认 Flutter 安装方式
Flutter 通常通过以下方式安装:
- 手动下载 SDK 压缩包(主流方式)
- Git 克隆仓库(
git clone https://github.com/flutter/flutter.git) - 包管理器(如 macOS 的 Homebrew、Linux 的 Snap)
- IDE 集成(如 Android Studio、VS Code 插件)
二、Windows 系统卸载 Flutter
步骤 1:删除 Flutter SDK 目录
- 找到 Flutter 安装路径(默认通常为
C:\src\flutter或自定义路径)。 - 直接删除整个
flutter文件夹:# 示例路径(替换为你的实际路径) Remove-Item -Recurse -Force C:\src\flutter
步骤 2:清理环境变量
- 右键“此电脑” → 属性 → 高级系统设置 → 环境变量。
- 删除以下条目:
- 用户变量 和 系统变量 中的
Path:移除指向 Flutter 的路径(如C:\src\flutter\bin)。 - 删除自定义变量
FLUTTER_HOME(如果存在)。
- 用户变量 和 系统变量 中的
步骤 3:删除 Flutter 缓存和配置
- 清理用户目录下的缓存:
Remove-Item -Recurse -Force $env:APPDATA\Pub\Cache # Dart 包缓存 Remove-Item -Recurse -Force $env:USERPROFILE\.flutter # 配置文件
步骤 4:IDE 清理
- VS Code:
- 卸载扩展:
Flutter和Dart。 - 删除配置文件:
%APPDATA%\Code\User\settings.json中移除 Flutter 相关配置。
- 卸载扩展:
- Android Studio:
- 打开
File→Settings→Plugins→ 卸载Flutter插件。
- 打开
三、macOS 系统卸载 Flutter
步骤 1:删除 Flutter SDK 目录
- 找到安装路径(默认通常为
~/development/flutter):rm -rf ~/development/flutter
步骤 2:清理环境变量
- 编辑 Shell 配置文件(如
~/.zshrc或~/.bash_profile):nano ~/.zshrc - 删除或注释以下内容:
export PATH="$PATH:$HOME/development/flutter/bin" export FLUTTER_HOME="$HOME/development/flutter"
步骤 3:删除缓存和依赖
rm -rf ~/.pub-cache # Dart 包缓存
rm -rf ~/.flutter # 用户配置
rm -rf ~/Library/Caches/flutter # 系统缓存
步骤 4:清理通过 Homebrew 安装的 Flutter
- 如果通过 Homebrew 安装:
brew uninstall flutter brew cleanup
四、Linux 系统卸载 Flutter
步骤 1:删除 Flutter SDK 目录
- 找到安装路径(默认通常为
~/development/flutter):sudo rm -rf ~/development/flutter
步骤 2:清理环境变量
- 编辑 Shell 配置文件(如
~/.bashrc):nano ~/.bashrc - 删除或注释以下内容:
export PATH="$PATH:$HOME/development/flutter/bin"
步骤 3:清理缓存和配置
rm -rf ~/.pub-cache
rm -rf ~/.flutter
步骤 4:通过 Snap 卸载(如果适用)
sudo snap remove flutter
五、可选:清理 Android 开发环境
警告:仅需在不再需要 Android 开发时执行!
- 卸载 Android Studio:
- macOS/Linux:删除安装目录(如
/Applications/Android Studio.app)。 - Windows:通过控制面板卸载。
- macOS/Linux:删除安装目录(如
- 删除 Android SDK:
# 默认路径 rm -rf ~/Library/Android # macOS rm -rf ~/Android # Linux rm -rf C:\Users\<用户>\AppData\Local\Android # Windows
六、验证是否卸载成功
在终端或命令提示符中运行:
flutter --version # 应提示 "command not found"
dart --version # 同上(如果 Dart 独立安装)
七、附加提醒
- 备份项目:卸载前备份 Flutter 项目代码(
lib/、pubspec.yaml等)。 - 版本管理工具:
- 如果使用
fvm(Flutter Version Management),运行:fvm flutter clean rm -rf ~/.fvm
- 如果使用
- iOS 开发工具(macOS):
- 如需保留 Xcode,无需额外操作;否则参考前文 Swift 卸载教程 清理。
八、常见问题解决
- 卸载后仍能运行
flutter命令:- 检查残留路径:
which flutter→ 手动删除对应文件。
- 检查残留路径:
- 重装时报权限错误:
- 确保旧目录已完全删除:
sudo rm -rf <路径>(Linux/macOS)。
- 确保旧目录已完全删除:
九、总结
- 核心操作:删除 SDK 目录 → 清理环境变量 → 清除缓存和 IDE 配置。
- 关键点:
- Windows:检查
AppData下的隐藏缓存。 - macOS/Linux:区分手动安装和包管理器安装。
- 通用:IDE 插件需单独卸载。
- Windows:检查
按此操作后,Flutter 开发环境将被彻底清除,为全新安装或切换其他框架铺平道路。
相关文章:
清晰易懂的 Flutter 卸载和清理教程
以下是为 Flutter 彻底卸载与清理教程,覆盖 Windows、macOS、Linux 系统,步骤清晰无残留,确保完全删除 Flutter SDK、依赖工具及 IDE 配置。 一、通用步骤:确认 Flutter 安装方式 Flutter 通常通过以下方式安装: 手动…...
docker-compose部署以及常用命令
一:常用命令 1.docker compose restart//重启 2.docker compose down// 停止 3.docker compose ps//列出 4.sudo docker-compose up -d 启动并且在后台运行 二:yaml配置文件 version: 3.5 services:etcd:container_name: milvus-etcdimage: quay.io/coreos/etcd:…...
《Golang高性能网络编程:构建低延迟服务器应用》
在本文中,我们将深入探讨Golang高性能网络编程,帮助您构建低延迟服务器应用。我们将介绍Golang的网络编程特性、优化技巧和实际案例,让您更好地理解和应用Golang在网络编程领域的优势。 高性能网络编程简介 什么是Golang高性能网络编程 高性能…...
非对称加密技术深度解析:从数学基础到工程实践
一、密码学范式革命:从对称到非对称 1.1 对称加密的局限性 传统对称加密算法(如AES、DES)采用共享密钥机制,加解密使用相同密钥。虽然计算效率优异(AES-256加密速度可达800MB/s),但在密钥分发环…...
Ubuntu 22.04/24.04 配置apt 源
前言 在 Ubuntu 系统部署与运维中,APT 源配置是保障软件安装效率与系统稳定性的核心环节。然而,随着 Ubuntu 24.04 LTS(Noble)的发布,其 APT 源配置格式与 22.04 LTS(Jammy)存在显著差异。 …...
数据结构C语言练习(设计循环队列)
一、循环队列简介 循环队列是一种线性数据结构,基于 FIFO(先进先出)原则,将队尾连接到队首形成循环。其核心优势是能复用队列之前用过的空间,避免普通队列 “假溢出” 问题。实现时,通常申请 k1 大小的数组…...
vscode代码片段的设置与使用
在 Visual Studio Code (VS Code) 中,可以通过自定义**代码片段(Snippets)**快速插入常用代码模板。以下是详细设置步骤: 步骤 1:打开代码片段设置 按下快捷键 Ctrl Shift P(Windows/Linux)或…...
在Vue中如何高效管理组件状态
在Vue中高效管理组件状态,可以采用以下几种策略: 使用Vuex进行状态管理: 对于复杂的应用,使用Vuex是一个非常有效的状态管理方案。Vuex提供了一个集中存储管理所有组件的状态,并以响应式的方式更新视图。它包括以下几个…...
uniapp -- 列表垂直方向拖拽drag组件
背景 需要在小程序中实现拖拽排序功能,所以就用到了m-drag拖拽组件,在开发的过程中,发现该组件在特殊的场景下会有些问题,并对其进行了拓展。 效果 组件代码 <template><!-- 创建一个垂直滚动视图,类名为m-drag --><scroll...
一款非常小的软件,操作起来非常丝滑!
今天我想给大家分享一款超级实用的小软件,它是一款电脑上用的倒计时和关机助手。 关机助手 帮你自动关机 这款关机助手特别小巧,完全不需要安装,文件大小才60KB,比一个小小的文件还小。你只需要把它下载下来,双击打开…...
FrameWork基础案例解析(四)
文章目录 单独拉取framework开机与开机动画横屏Android.mk语法单独编译SDKmake 忽略warning单独修改和编译Camera2单独编译Launcher3Android Studio 导入、修改、编译Settings导入 Android Studio 导入、修改、编译Launcher3android 开机默认进入指定Launcher植入自己的apk到系…...
嵌入式电量与功耗优化:从理论到实战
目录 一、为什么功耗是个大问题? 电池寿命的命门 效率决定竞争力 运营成本的隐形杀手 环保不是空话 二、功耗从哪来?硬件软件一个都跑不了 硬件:功耗的物理根源 处理器:耗电主力军 存储器:偷偷摸摸的耗电鬼 电源管理单元(PMU):幕后功臣也有损耗 时钟系统:滴…...
通过 C# 提取PDF文档中的图片
当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,避免每次都要从 PDF 中查找。本文将介绍如何使用C#通过代码从PDF文档中提取图片ÿ…...
国标GB28181视频监控平台EasyCVR保驾护航休闲娱乐“九小场所”安全运营
凭借降低人力资源、节约物资成本的优势,在多个场景得到广泛应用。如今,棋牌室、洗浴中心、酒店这类人员频繁流动和密集的场所,已成为安全管理的重点。 尽管部分棋牌室已安装了监控设备,但是设备功能单一,只能实现一…...
GoLand 2024.3 中文 GO语言开发工具
GoLand 2024.3 中文 GO语言开发工具 文章目录 GoLand 2024.3 中文 GO语言开发工具一、介绍二、效果三、下载 一、介绍 JetBrains GoLand 2024 ,是一款GO语言开发工具,全行代码补全:能使用本地运行的上下文感知深度学习模型,可以自…...
HTML 音频(Audio)学习笔记
一、HTML 音频概述 在 HTML 中,音频可以通过多种方式播放,但要确保音频在不同浏览器和设备上都能正常播放,需要掌握一些技巧。HTML5 引入了 <audio> 元素,为音频播放提供了一种标准方法,但在 HTML4 中ÿ…...
去中心化交易所(DEX)
核心概念与DEX类型 DEX vs CEX 中心化交易所(CEX)风险:资产托管风险(如2019年超2.9亿美元被盗)、隐私泄露(如50万用户信息泄漏)。 DEX优势:用户自持资产(非托管&#x…...
CentOS 7 强制升级Docker 24.x终极指南(解决MySQL8镜像兼容性问题)
CentOS 7 强制升级Docker 24.x终极指南(解决MySQL8镜像兼容性问题) 旧版本: 新版本docker: 一、问题背景与方案选型 1.1 典型报错分析 The designated data directory /var/lib/mysql/ is unusable根本原因:旧版…...
【区块链安全 | 第十九篇】类型之映射类型
文章目录 映射类型可迭代映射 映射类型 映射类型使用语法 mapping(KeyType KeyName? > ValueType ValueName?),映射类型的变量声明使用语法 mapping(KeyType KeyName? > ValueType ValueName?) VariableName。 KeyType 可以是任何内置值类型、bytes、st…...
Flask与 FastAPI 对比:哪个更适合你的 Web 开发?
在开发 Web 应用时,Python 中有许多流行的 Web 框架可以选择,其中 Flask 和 FastAPI 是两款广受欢迎的框架。它们各有特色,适用于不同的应用场景。本文将从多个角度对比这两个框架,帮助你更好地选择适合的框架来构建你的 Web 应用…...
QT 中的元对象系统(五):QMetaObject::invokeMethod的使用和实现原理
目录 1.简介 2.原理概述 3.实现分析 3.1.通过方法名调用方法的实现分析 3.2.通过可调用对象调用方法的实现分析 4.使用场景 5.总结 1.简介 QMetaObject::invokeMethod 是 Qt 框架中的一个静态方法,用于在运行时调用对象的成员函数。这个方法提供了一种动态调…...
Linux进程管理与进程间通信
一、进程基础知识 1. 进程的定义与特性 **定义**:进程是程序的一次执行过程,是系统资源分配的基本单位 **特性**: - 动态性:进程是程序的动态执行过程 - 并发性:多个进程可以并发执行 - 独立性:进…...
【无人机】无人机PX4飞控系统高级软件架构
目录 1、概述(图解) 一、数据存储层(Storage) 二、外部通信层(External Connectivity) 三、核心通信枢纽(Message Bus) 四、硬件驱动层(Drivers) 五、飞…...
启动arthas-boot.jar端口占用
问题 [rootlocalhost arthas-4.0.4]# java -jar arthas-boot.jar [ERROR] The telnet port 3658 is used by process 7066 instead of target process 6155, you will connect to an unexpected process. [ERROR] 1. Try to restart arthas-boot, select process 7066, shutdow…...
JSVMP逆向实战:原理分析与破解思路详解
引言 在当今Web安全领域,JavaScript虚拟机保护(JSVMP)技术被广泛应用于前端代码的保护和反爬机制中。作为前端逆向工程师,掌握JSVMP逆向技术已成为必备技能。本文将深入剖析JSVMP的工作原理,并分享实用的逆向破解思路…...
【SPP】蓝牙链路控制(LC)在SPP中互操作性深度解析
在蓝牙协议栈的精密分层体系中,其链路控制(Link Control, LC)层作为基带层的核心组件,承载着物理信道管理、连接建立与维护等关键任务。其互操作性要求直接决定了不同厂商设备能否实现无缝通信。本文将以蓝牙技术规范中的LC互操作…...
单片机学习之定时器
定时器是用来定时的机器,是存在于STM32单片机中的一个外设。STM32一般总共有8个定时器,分别是2个高级定时器(TIM1、TIM8),4个通用定时器(TIM2、TIM3、TIM4、TIM5)和2个基本定时器(TI…...
供应链管理:计算题 / 倒扣法
一、理解倒扣法 在供应链管理中,倒扣法是一种常用的成本计算方法,主要用于确定商品的成本和销售价格,以确保特定的毛利率。倒扣法的基本原理是在已知售价和期望毛利率的情况下,逆推计算出供货价或成本价。 二、倒扣法的计算公式…...
算法每日一练 (25)
💢欢迎来到张翊尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 算法每日一练 (25)四数之和题目描述解题思路解题代码c…...
【大模型基础_毛玉仁】6.4 生成增强
目录 6.4 生成增强6.4.1 何时增强1)外部观测法2)内部观测法 6.4.2 何处增强6.4.3 多次增强6.4.4 降本增效1)去除冗余文本2)复用计算结果 6.4 生成增强 检索器得到相关信息后,将其传递给大语言模型以期增强模型的生成能…...
