flutter开发环境搭建与android studio 安装配置
flutter开发环境搭建与android studio 安装配置
安装 android studio
- 下载安装 Android Studio 开发工具 Android Studio官网
- 安装的时看到配置路径就换成自己其他盘的路径即可,其他的一路下一步就ok
- 安装完毕,运行打开缺少 android sdk 按照提示下载即可,但是网络原因可能长时间卡着不动,那么就需要执行下面的一步了

无法下载 android SDk 配置服务器代理ip
- 网站检测 https://ping.chinaz.com/
- 在当前网站中输入 dl.google.com

- 查看检测结果,根据自己所在地区或近距离ip以及可以成功的响应ip

配置hosts文件 C:\Windows\System32\drivers\etc\hosts

- 前面是上面复制的ip地址后面是固定域名
220.181.174.225 dl.google.com

- ping dl.google.com 检测是否可以响应

- 出现所需要的配置



- 下载完毕

- 可以看到sdk安装到了c盘下 不要学我自己换个其他盘路径(安装到了C盘也不用慌后面可以改自己搜一下百度我帮你交过钱了)

flutter sdk下载以及环境配置
flutter官网下载sdk

-
下载并解压
-
-
系统变量配置
-
FLUTTER_HOME=D:\work\work-Software\flutter


-
检查 flutter sdk是否安装成功 新建控制台输入
flutter

flutter doctor 开发环境诊断与搭建
- 当前自己电脑flutter环境存在什么问题依次解决即可,没有直接跳过,本文未有的报错可以上百度搜索我帮你付过钱了
- 当前电脑配置诊断
flutter doctor- 此处 flutter sdk安装成功 但是有警告,因为在此之前安装了 dart的SDK,需要清除配置的dart环境变量

- 此处 flutter sdk安装成功 但是有警告,因为在此之前安装了 dart的SDK,需要清除配置的dart环境变量
cmdline-tools component is missing cmdline工具组件丢失
- 此处 Android工具链还有问题
- 解决:

Android license status unknown Android许可证状态未知
- 解决:输入命令后出现很多协议每个都选择 y即可

Windows Version (Unable to confirm if installed Windows version is 10 or greater) 报错

- 找到当前文件进行修改 flutter_windows_3.7.5-stable\flutter\packages\flutter_tools\lib\src\windows\windows_version_validator.dart
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.import 'package:process/process.dart';import '../base/io.dart';
import '../doctor_validator.dart';// FIX #1 - Remove everything from line 10 to 20 in original source code./// Validator for supported Windows host machine operating system version.
class WindowsVersionValidator extends DoctorValidator {const WindowsVersionValidator({required ProcessManager processManager}): _processManager = processManager,super('Windows Version');final ProcessManager _processManager;@overrideFuture<ValidationResult> validate() async {// FIX #2 - Replace 'systeminfo' by 'ver' commandfinal ProcessResult result =await _processManager.run(<String>['ver'], runInShell: true);if (result.exitCode != 0) {return const ValidationResult(ValidationType.missing,<ValidationMessage>[],statusInfo: 'Exit status from running `systeminfo` was unsuccessful',);}final String resultStdout = result.stdout as String;// FIX #3 - Remove brackets from outputfinal String resultAdjusted = resultStdout.replaceAll('[','').replaceAll(']','');// FIX #4 - Split the output at spaces, and get Windows version at position 3.
// Split again at dots and get the major version at position 0.
// Cast the output to int.final int winver = int.parse(resultAdjusted.split(' ').elementAt(3).split('.').elementAt(0));// Use the string split method to extract the major version// and check against the [kUnsupportedVersions] listfinal ValidationType windowsVersionStatus;final String statusInfo;// FIX #5 - Check if Windows major version is greater than 10.
// Succeeds if true.if (winver >= 10) {windowsVersionStatus = ValidationType.installed;statusInfo = 'Installed version of Windows is version 10 or higher';} else {windowsVersionStatus = ValidationType.missing;statusInfo ='Unable to confirm if installed Windows version is 10 or greater';}return ValidationResult(windowsVersionStatus,const <ValidationMessage>[],statusInfo: statusInfo,);}
}
- 删除文件 flutter_windows_3.7.5-stable\flutter\bin\cache\flutter_tools.stamp
- 重新检测
Android toolchain - develop for Android devices 报错
- 配置你自己存放sdk的位置: flutter config --android-sdk D:\Android\SDK
Android toolchain - develop for Android devices (Android SDK version 34.0.0) 报错
- 下载 Android SDK Command-line Tools (latest)

- 执行
flutter doctor --android-licenses
Visual Studio - develop for Windows 报错
Visual Studio not installed; this is necessary for Windows development.Visual Studio未安装;这对于Windows开发是必要的- 这个就不管了目前没有开发pc应用端的需求
- 如果你有需求可以看我的这篇文章:flutter windows 应用开发相关配置
JAVA 环境配置
- 这个没写呢自己上百度搜一下我帮你付过钱了
创建一个空项目
- 第一次创建项目会自动下载 Gradle 下载需要一些时间
- 可以通过 android studio 进行创建
- 或者使用命令进行创建
flutter create projectname

- 选择flutter sdk 版本

- 填写项目名称 以及项目存放路径 最重要的是选择需要的运行的环境

- 下载依赖

打包 android 安装包
- 通过 android studio 进行打包
- 或者使用命令进行打包
flutter build apk||flutter build apk --debug- 正式包位置
\build\app\outputs\flutter-apk\xxx.apk - 测试包位置
\build\app\outputs\flutter-apk\app-debug.apk

- 正式包位置
- 打包成功

模拟器的使用
创建模拟器



模拟器启动出现问题 (没有出现的直接跳过)
- 报错详情 等待设备时出错:等待仿真器上线300秒后超时
Timed out after 300seconds waiting foremulator to come online.

- 参考大佬解决方案:https://stackoverflow.com/questions/36675654/error-while-waiting-for-device-time-out-after-300seconds-waiting-for-emulator-t
- 问题原因:
- 1.首先排除了网络原因,我用本地网络,而且使用了魔法,依然无效
- 2.系统问题,系统没有开启虚拟服务

- 查看自己电脑是否开启了 Hyper-V 没有开启则需要手动开启
- 报错详情:模拟器运行终止
The emulator process for AVD Pixel 3a XL API 26 has terminated.
参考大佬解决方案:https://blog.csdn.net/qq_55773476/article/details/124665613
我的确是C盘爆了导致的问题(已解决)

使用安卓模拟器运行 flutter 项目
- 使用android studio 界面运行 flutter

- 使用命令运行
flutter devices查看在线设备

flutter run -d emulator-5554运行到 emulator-5554 模拟器flutter run -dall运行到 当前展示的所有端
在下载flutter项目使用的依赖插件时下载超时 配置flutter镜像 解决

- 将flutter镜像配置到系统环境变量中 (不推荐设置临时环境变量)
PUB_HOSTED_URLhttps://pub.flutter-io.cn

- FLUTTER_STORAGE_BASE_URL
- https://storage.flutter-io.cn

flutter项目在VScode上进行开发
- 必备插件


android studio 开发flutter 项目 插件推荐 (我一般用vscode进行开发 android studio 运行代码)
- flutter 和 dart

- flutter doctor 在此进行检查

adb命令无法使用 (可以忽略不用)

- 配置环境变量




-
成功

-
在android编辑器中端中使用 abd命令出现问题

关闭编辑器在重新打开

相关文章:
flutter开发环境搭建与android studio 安装配置
flutter开发环境搭建与android studio 安装配置 安装 android studio 下载安装 Android Studio 开发工具 Android Studio官网安装的时看到配置路径就换成自己其他盘的路径即可,其他的一路下一步就ok安装完毕,运行打开缺少 android sdk 按照提示下载即可…...
postgresql 字符串 替换
postgresql 字符串 替换 在PostgreSQL中,可以使用replace()函数来替换字符串中的某个部分。该函数的语法如下: REPLACE(string text, from text, to text) 其中: string 是要进行替换操作的原始字符串。 from 是原始字符串中需要被替换掉的…...
如何强化学习神经网络
强化学习(Reinforcement Learning, RL)神经网络是一种通过奖励和惩罚机制来学习策略的方法,适用于各种复杂的决策问题。以下是强化学习神经网络的一些主要步骤和方法: 1. 了解基本概念 环境(Environment)…...
Hadoop未授权访问漏洞
Hadoop未授权访问漏洞 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,由于服务器直接在开放了Hadoop机器HDFS的50070web端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目…...
Python中json模块的编码和解码
在Python中,可以用json模块处理JSON的编码和解码问题。json的全程是 javascript object notation, 翻译一下就是javascritpt 对象表示法。json是一种轻量级的数据交换格式,容易阅读和编写,支持的数据类型有:字符串、数字、数组和对…...
【Linux】文件变身大作战:Linux下的文件重命名艺术
欢迎来到 CILMY23 的博客 🏆本篇主题为:文件变身大作战:Linux下的文件重命名艺术 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法…...
字节的存储和字符的存储
字节的存储 内存中的存储 基本数据类型: 在Java中,byte 类型占用 1 个字节(8 位)。它的取值范围是从 -128 到 127。存储在内存中的 byte 数据可以直接操作,例如通过数组或变量访问。 数据结构: byte 数组…...
Markdown插入Base64格式的图片,无需图床,稳定保存
Markdown插入Base64格式的图片,无需图床,稳定保存 我是一个Markdown的爱好者,转存图片是MD经常出问题的地方,因为MD不像其他富文本编辑器,将图片内嵌到文件中,而是用链接的形式引用,或网络链接…...
weblogic 连接gaussdb测试数据源是否联通
文章目录 1. gaussdb创建远程连接用户和数据库2. weblogic构建GaussDB源数据库3. 测试结果查询注意 weblogic中jar包已经放入lib目录中gaussdb已经创建可以连接登录的用户和数据库1. gaussdb创建远程连接用户和数据库 新建用户和数据库连接客户端Gauss=# create user lily pas…...
如何成为全域运营商?掌握这2种申请方式就够了!
随着全域概念的兴起,全域运营商的职业前景和收益空间逐渐显现,并迅速成为了热门创业赛道中的一份子,连带着如何成为全域运营商等入局方式相关话题也成为了众多创业者热议的焦点。 不过,从市场现状来看,作为涵盖公域和私…...
@ConfigurationProperties加在方法上
ConfigurationProperties注解通常用于将外部配置文件(如application.properties或application.yml)中的属性映射到Java类中。它通常加在类上,但也可以加在方法上。加在方法上时,通常与Bean注解一起使用,以便将配置属性…...
使用CUBEMX配置的USB大容量存储设备主机库获取LUN数量的不严谨代码纠正
最近在使用usb主机库驱动U盘直接进行扇区读写。 发现MSC库中获取LUN相关代码有问题 代码如下 其中 status USBH_MSC_BOT_REQ_GetMaxLUN(phost, (uint8_t *)(void *)&MSC_Handle->max_lun); MSC_Handle->max_lun (MSC_Handle->max_lun > MAX_SUPPORTED_L…...
合并重叠的区间
这一题不能用差分数组,因为 [1 , 4] [5, 6] 这个就会被合并,正确的做法就是先排序 bool cmp(vector<int> a, vector<int> b) {if (a[0] < b[0]) return 1;if (a[0] b[0]) return a[1] < b[1];return 0; } class Solution { public:ve…...
docker和运维
创建服务 docker service create --name order --network my-net -p 8080:8080 -d xxx 加入swarm集群 docker swarm join --token xxx 更新结点名字为mysql docker node update --label-add servermysql ecs-82ec-0003 创建MySQL服务 docker service create --name mysql --con…...
苍穹外面day13(day10)---订单状态定时处理、来单提醒和客户催单
Spring Task 同学们可以看我这篇文章 Spring Task初学-CSDN博客 订单状态定时处理 新建OrderTask /*** 定时任务类,定时处理订单状态*/ Component Slf4j public class OrderTask {Autowiredprivate OrderMapper orderMapper;/*** 处理超时订单的方法*/Scheduled(c…...
RCE和php文件上传
一、远程命令执行(RCE) RCE漏洞概述 RCE漏洞允许攻击者通过某种方式在目标服务器上执行任意命令。这种漏洞通常出现在服务器端语言中,如PHP。 RCE漏洞原理 PHP中的一些函数可以执行命令或代码,但如果对这些函数的输入未加限制&a…...
nextjs 实现TodoList网页应用案例
参考: https://nextjs.org/ Next.js 是用于网络的一种 React 框架。一些世界上最大的公司在使用它,它能够借助 React 组件的力量让您创建高质量的网络应用程序。 1、创建项目: 另外注意:pages与app路由存在冲突,如果有…...
U盘格式化了怎么恢复数据?教你U盘恢复妙招
U盘作为便携式存储设备,在我们的日常生活和工作中发挥着重要作用。然而,有时由于操作失误或其他原因,我们可能会格式化U盘,从而导致数据丢失。当遭遇这种情况时,很多人会感到焦虑和困惑。不过,幸运的是&…...
化工厂室内外4G/5G+蓝牙+GPS/北斗RTK人员定位系统解决方案
化工厂是高风险场所,含有大量有毒、易燃、易爆、易腐蚀等化学物品,并且环境复杂、设备繁多,一旦出现人为疏忽或者违规操作很容易引发重大安全事故,因此对化工厂员工、外来访客进行科学合理地管控,提升化工厂管理人员管…...
【知识跨境电商API接口丨python数分实战】国际电商平台用户成交转化分析
今天这篇文章将给大家介绍国际电商平台用户成交转化分析案例。 01 初步思路 问题已经明确 GMV的下降,可能出在用户下单成交环节。 这里需要明确GMV下降是今年与去年相比吗?明确GMV下降到底如何判断出来的?对比的对象是什么?如…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
