前言

在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

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好啊(逃

欢迎与我交流