flutter 入门

安装环境
java8
flutter (使用的2.2.3)
安装环境变量

打开一个命令提示符,我们输入flutter doctor

安装Android Studio

Android SDK

输入如下命令flutter doctor --android-licenses
一直点 y
通通输入 y 然后回车。一共是7个,数量不用在意,总之全部y直到我们看到All SDK package licenses accepted
我们再次输入flutter doctor

vscode 安装插件

使用第三方Android模拟器,运行Flutter项目
使用flutter create xxxxx(xxx是项目名称,自己任取)

回车后就会帮我们创建好一个Flutter项目模板,flutter pub get会从网络下载一些基础依赖库
配置镜像站环境变量
由于国内网络直连Google的服务都有问题,所以我们需要配置一下镜像站的地址。
打开控制面板,进入用户账户\用户账户,点击更改我的环境变量,然后我们选择新建
添加第一个:PUB_HOSTED_URL

https://pub.flutter-io.cn

添加第二个:FLUTTER_STORAGE_BASE_URL

https://storage.flutter-io.cn

添加完成之后,可能需要重启一次电脑
然后再次运行flutter create xxxxx应该是可以顺利创建成功了
如果等了很久还是不行,就ctrl+c取消,然后重新运行flutter create xxxxx...直到成功。如果还是不行,可在浏览器中访问 pub.flutter-io.cn 看看是否成功。

运行Flutter项目到Android模拟器

安装网易mumu模拟器
不支持VT-x,可以暂时先不管
cd到网易mumu模拟器的安装目录
MuMu\emulator\nemu\vmonitor\bin
adb_server.exe connect 127.0.0.1:7555

回到VSCode中,按下F5后就可以运行调试Flutter APP了

耐心等待Gradle task运行
1、问题:用安卓模拟器打开flutter项目时候,一直卡在Running Gradle task 'assembleDebug'...

2、原因:这是因为android studio运行项目时需要请求部分资源,而请求外网资源,你懂的...

3、解决:解决方法:1、翻*墙 。2换源

我采用的方法是换阿里源
网络问题可能要下载文件到本地

错误:maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
正确:maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }

F:\tool\flutter\packages\flutter_tools\gradle/flutter.gradle

  repositories {
        // google()
        // mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
    }

class FlutterPlugin implements Plugin<Project> {
    // private static final String DEFAULT_MAVEN_HOST = "https://storage.googleapis.com";
    private static final String DEFAULT_MAVEN_HOST = "https://storage.flutter-io.cn";
...}

F:\tool\flutter\packages\flutter_tools\gradle/resolve_dependencies.gradle

repositories {
    // google()
    // mavenCentral()
    maven { url 'https://maven.aliyun.com/repository/google' }
    maven { url 'https://maven.aliyun.com/repository/jcenter' }
    maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
    maven {
        // url "$storageUrl/download.flutter.io"
        url "https://storage.flutter-io.cn/download.flutter.io"
    }
}

项目中的android\build.gradle

buildscript {
    ext.kotlin_version = '1.6.10'
    repositories {
//        google()
//        mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
    }

...

allprojects {
    repositories {
//        google()
//        mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
    }
}

找到项目目录下android/gradle-wrapper.properties文件,根据 distributionUrl 中指定的gradle版本号,下载对应版本的压缩包到本地任一路径下,

distributionUrl=file:///E:/gradleall/gradle-6.7-all.zip
vscode
"args": ["--enable-software-rendering"]


注释原来的代码行,把路径改成本地路径
重新运行 flutter run

flutter run --enable-software-rendering


如果你在这一步遇到错误 [ERROR:flutter/shell/gpu/gpu_surface_gl.cc(58)] Failed to setup Skia Gr context.
在VSCode项目的terminal里使用如下命令启动项目

flutter run --enable-software-rendering

但是这个方法会导致无法Hot Reload,需要手动在terminal中输入r

posted @ 2023-02-20 13:03  7c89  阅读(55)  评论(0编辑  收藏  举报