Flutter环境搭建踩坑记录(Mac)_逝雪飘零的博客-程序员宝宝

技术标签: flutter  环境搭建  

Flutter环境搭建

因为是我android 开发 并已经安装xcode玩耍的!!!所以从以下错误开始

首先

使用镜像

由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中:

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

我de 环境变量 在 ~/.bash_profile 大家可能配的不同哈 在后面追加就好 当然也可以直接使用命令行方式追加

之后在

官方下载 flutter

 最新可用的安装包,官网地址:https://flutter.io/sdk-archive/#macos

注意,Flutter的渠道版本会不停变动,请以Flutter官网为准。另外,在中国大陆地区,要想正常获取安装包列表或下载安装包,可能需要翻墙,读者也可以去Flutter github项目下去下载安装包,地址:https://github.com/flutter/flutter/releases 。

当然 git 下载也行 不过在github下载超级无敌慢 可能还会失败 (我就是等了及各种结果下载失败了)

 git clone -b beta https://github.com/flutter/flutter.git
 export PATH=`pwd`/flutter/bin:$PATH

接下来是

配置路径

打开下载并进入到flutter 目录

	临时配置  export PATH=`pwd`/flutter/bin:$PATH
全局配置

将Flutter添加到PATH中,可以在任何终端会话中运行flutter命令。

对于所有终端会话永久修改此变量的步骤是和特定计算机系统相关的。通常,您会在打开新窗口时将设置环境变量的命令添加到执行的文件中。例如

确定您Flutter SDK的目录记为“FLUTTER_INSTALL_PATH”,您将在步骤3中用到。

打开(或创建) $HOME/.bash_profile。文件路径和文件名可能在你的电脑上不同.

添加以下路径:

export PATH=[FLUTTER_INSTALL_PATH]/flutter/bin:$PATH

例如笔者Flutter 安装目录是“~/code/flutter_dir”,那么代码为:

export PATH=~/code/flutter_dir/flutter/bin:$PATH

运行 source $HOME/.bash_profile 刷新当前终端窗口。

注意: 如果你使用终端是zsh,终端启动时 ~/.bash_profile 将不会被加载,解决办法就是修改 ~/.zshrc ,在其中添加:source ~/.bash_profile

验证“flutter/bin”是否已在PATH中:

echo $PATH

没问题的话就

执行 flutter doctor

按照官方文档执行 到 flutter doctor 的时候发现这个错

 ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit
      https://flutter.dev/setup/#android-setup for detailed instructions.

从报错提示来看,需要添加Android license。
执行命令:

flutter doctor --android-licenses

然后发现 居然要更新!!!

pengzhixiandeMacBook-Pro:work pengzhixian$ flutter doctor --android-licenses
A newer version of the Android SDK is required. To update, run:
/Users/pengzhixian/Library/Android/sdk/tools/bin/sdkmanager --update

头疼 在sdk更新不管用 只好按照提示 执行

 /Users/pengzhixian/Library/Android/sdk/tools/bin/sdkmanager --update

然后再报错 是的 报错!!!

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156) at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75) at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81) at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73) at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499) ... 5 more

真是刺激 我忍, 继续google查找相关问题

然后发现问题解决方案 执行sdkmanger --update 报错

上述问题产生主要是因为flutter要求的的就打开版本跟自己本地的不一样,当时要求的是jdk8 我只是切回了8 就解决了 (flutter后续应该会修复吧)
试了下其他人说的修改sdkManager无效。。

好解决 继续下一步

一路按照提示下来居然搭好了。。好了。。。
end!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/plzyxy/article/details/100520421

智能推荐

bzoj 1858: [Scoi2010]序列操作 -- 线段树_weixin_30273931的博客-程序员宝宝

1858: [Scoi2010]序列操作Time Limit:10 SecMemory Limit:64 MB线段树,对于每个区间需要分别维护左右和中间的1和0连续个数,并在op=4时特殊处理一下。Descriptionlxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作:   0 a b 把[...

Python psutil模块[email protected]的博客-程序员宝宝_psutil模块详解

#! /usr/bin/python3# -*- encoding:utf8 -*-import osimport psutil# 获取Mac电池状态print('当前电池可用量:{}%'.format(psutil.sensors_battery().percent))# 获取CPU信息(CPU核心数)print(psutil.cpu_count(logical=False))# 获取内存信息print('系统总内存:{}GB'.format(psutil.virtual_mem

第2.1章 WEB系统最佳实践Spring文件配置_warrah的博客-程序员宝宝

08年的时候开始使用SSH框架,2013年的Struts2高危漏洞造成大规模的信息泄露,受影响站点以电商、银行、门户、政府居多。使我对SSH框架的开发心有余悸,逐渐转向当时颇为流行的SpringMVC框架,并总结整理,形成我自己开发Web系统的整套最佳实践框架。 Spring的基础学习,可以参考 spring框架学习,我不做介绍。 只对实践操作进行描述. 当我们了解的开发DRY原则、SOA

动态SQL与静态SQL的区别_qinhun0106的博客-程序员宝宝

动态SQL与静态SQL的区别首先,所谓SQL的动态和静态,是指SQL语句在何时被编译和执行,二者都是用在SQL嵌入式编程中的,这里所说的嵌入式是指将SQL语句嵌入在高级语言中,而不是针对于单片机的那种嵌入式编程。在某种高级语言中,如果嵌入了SQL语句,而这个SQL语句的主体结构已经明确,例如在Java的一段代码中有一个待执行的SQL“select * from t1 where c1&amp;gt;5”,...

Tomcat学习系列之三多虚拟主机配置_weixin_34232617的博客-程序员宝宝

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

PyTorch的AutoGrad_AKA_3的博客-程序员宝宝

标量自动求导输入import torchx = torch.arange(4.0)x.requires_grad_(True) # 等价于 `x = torch.arange(4.0, requires_grad=True)`x.grad # 默认值是Noney = 2 * torch.dot(x, x)y.backward()x.grad输出tensor([ 0., 4., 8., 12.])非标量变量的反向传播输入# 对非标量调用`backward`需要传入一个`

随便推点

SpringBoot项目@Scheduled读取动态参数_郝少的博客-程序员宝宝[email protected] 动态

1、基于@Scheduled可配置开发application.propertites:read.timer.parmas=0 0/1 * * * *定时类:@Componentpublic class ScheduledService {Logger logger= LoggerFactory.getLogger(ScheduledService.class); @...

android gradle kapt,android - Gradle DSL method not found: 'kapt()' - Stack Overflow_虎嗅APP的博客-程序员宝宝

Gradle DSL method not found: 'kapt()'Possible causes:The project 'jetpacklearn' may be using a version of the Android Gradle plug-in that does not contain the method (e.g. 'testCompile' was added in 1...

基于SpringBoot和Mybatis实现的校园云盘_phenixhhh的博客-程序员宝宝

首先,云盘要有个登录页面然后用户登录以后会显示用户的所有文件,如果文件是图片格式的,则要直接显示出来。完成文件的 下载 和在线预览(注意,在线预览不算下载次数)完成文件的上传功能,上传的目录要根据日期每天创建一个文件夹(文件夹统一命名为 “yyyy-MM-dd”),上传完成后,要跳转到查询所有页面。设计数据库的表。首先得有个用户表,然后得有个文件表。用户表的sql:CREATE TABLE `t_user` ( `id` int(8) NOT NULL, `usernam.

GTK实现生命游戏小结_rxcai的博客-程序员宝宝

一个课程proj,要求在linux下写一个生命游戏,几乎没有要求,可以1-3人做,可以有gui也可以直接是命令行,可以是二维也可以是3D,先上程序效果图--->在这之前已经很久没有碰过C了,更别说是linux了...拿到proj题目后,回来第一件事就是在电脑上装个ubuntu,目前这台小黑兢兢业业地跑着win7 Mac X还有ubuntu,虽然已经是08年的电脑,但是除了感觉硬盘有点吃紧外

数睿数据智能工程部部长车文彬:聚焦场景化智能 加速无代码变革_数睿数据的博客-程序员宝宝

把复杂留给自己,把简单带给客户近日,由中国电子技术标准化研究院、苏州市金融科技协会指导的“第二届ISIG中国产业智能大会”在上海举行。数睿数据科技有限公司智能工程部部长车文彬在此次大会的“2021人工智能、大数据与云计算应用峰会”上发表了题为《聚焦场景化智能 加速无代码变革》的主题演讲,详细地介绍了蕴含在Smartdata平台里的AI能力,足够务实,足够聚焦。车文彬介绍,数睿数据是数据驱动的企业级无代码软件平台的开创者和领导者,公司聚焦服务规模以上软件企业,推动基于无代码软件平台的智能软件工.

推荐文章

热门文章

相关标签