前言
在Windows上做开发,一个字:坑。 但是有时候外出只能带着笔记本,Linux在一些笔记本上不太兼容,驱动支持不完美,而且电源管理不够好,所以无奈的情况下只能用Windows暂时顶一下,就像现在我要在Windows上搭建Flutter的开发环境一样,太坑了。
进入正题
先安装Android SDK
首先,你要有一种可以下载到Android SDK的方式,可以是梯子,或者是国内镜像,具体我就不展开了。
1. 安装 Android Studio
2. 第一次运行就会提示安装SDK
3. 或者是按步骤操作
File | Settings | Appearance Behavior | System Settings | Android SDK
4. 加入环境变量
Windows的环境变量很麻烦,不像Linux一个profile搞定,具体操作就是打开控制面板,如图
选择系统和安全
选择系统
高级系统设置
环境变量
双击这个Path
选择新建
然后把SDK的安装目录复制进去就行了。
5. 设置ANDROID_HOME
环境变量
设置Path变量的同时,要把SDK的安装目录也添加到ANDROID_HOME
里面,具体方法是新建一个环境变量,命名为ANDROID_HOME,变量值是SDK的目录。
下载Flutter SDK
- Flutter官网:https://flutter.dev/
- 官方安装教程:https://flutter.dev/docs/get-started/install
1. 首先要添加两个环境变量,用来设置国内的Flutter镜像:
PUB_HOSTED_URL=https://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn 设置变量的方法前面有说过,但是这个和Path环境变量又有不同,这个需要添加新的变量,操作如下:
在环境变量对话框里点新建
名称和变量值分别填入
(手把手教学啊,够清楚了吧)
2. 接下来有三种方法来安装Flutter
- 使用Git把Flutter的代码克隆下来,关于Windows上使用Git请参考我之前写的博客或自行搜索
- 使用Chocolatey安装Flutter,关于Chocolatey的使用我会在后面的博客里面介绍
- 下载官方的安装包,链接:https://flutter.dev/docs/get-started/install/windows
3. 把Flutter代码下载下来之后,同样要把这个路径添加到Path环境变量里面,具体操作不再赘述,都在上面介绍过了,在path环境变量后面直接添加Flutter的路径就可以了。
4. 运行flutter doctor
打开Powershell,输入命令:
flutter doctor
然后Flutter就会自动下载各种依赖什么的,接下来编译Flutter SDK,结果类似下面这样就成功啦:
安装插件
无论是使用VSCode还是Android Studio都行,都一样要安装Flutter插件,Android Studio装完需要重启。
配置Gradle
2023年更新:现在不用了,但依然需要配置Gradle国内镜像
还有一个很坑的地方就是要配置Gradle路径环境变量。
- 新建一个
GRADLE_HOME
的环境变量 - 把Gradle目录填进去,具体在哪自己找,不同的电脑不一样的
- 把GRADLE_HOME加到Path变量里:
在Path里添加一个值为
%GRADLE_HOME%\bin
的变量。 - 为了避免又出什么幺儿子,再添加一个CLASS_PATH的环境变量,
值为:
%GRADLE_HOME%\lib
配置Gradle国内镜像
参考这个Github项目:https://china-speed.github.io/
gradle bin
官方 CDN 域名:downloads.gradle-dn.com 曾在中国落地,现已取消,无法继续使用。
sed -i 's/services.gradle.org\/distributions\//mirrors.cloud.tencent.com\/gradle\//g' ./gradle/wrapper/gradle-wrapper.properties
# 腾讯云
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-6.6.1-bin.zip
# 默认国外
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-bin.zip
Gradle maven
Google maven 曾在中国落地,现已取消,需要内地加速。
mkdir ~/.gradle
cat > ~/.gradle/init.gradle << \EOF
def repoConfig = {
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.contains('repo1.maven.org/maven2')
|| url.contains('jcenter.bintray.com')
|| url.contains('maven.google.com')
|| url.contains('plugins.gradle.org/m2')
|| url.contains('repo.spring.io/libs-milestone')
|| url.contains('repo.spring.io/plugins-release')
|| url.contains('repo.grails.org/grails/core')
|| url.contains('repository.apache.org/snapshots')
) {
println "gradle init: [buildscript.repositories] (${repo.name}: ${repo.url}) removed"
remove repo
}
}
}
// 腾讯云 maven 镜像聚合了:central、jcenter、google、gradle-plugin
maven { url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public/' }
// 阿里云 https://help.aliyun.com/document_detail/102512.html
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/spring' }
maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
maven { url 'https://maven.aliyun.com/repository/grails-core' }
maven { url 'https://maven.aliyun.com/repository/apache-snapshots' }
}
allprojects {
buildscript {
repositories repoConfig
}
repositories repoConfig
}
EOF
ok...
总算是配置完了,自己折腾一遍也总算能理解为啥有新手同学说他配置flutter环境搞了一个星期~ Windows对开发者真的不算友好,多了很多折腾的地方,特别对于初学者来说要走很多弯路,说来说去还是用Linux或者Mac好啊(逃
欢迎与我交流
- 打代码直播间:https://live.bilibili.com/11883038
- 微信公众号:DealiAxy
- 知乎:https://www.zhihu.com/people/dealiaxy
- 博客:https://blog.deali.cn
- 简书:https://www.jianshu.com/u/965b95853b9f