Flutter环境配置遇到的坑

接触Android也有段时间了,Kotlin没学,错过了不少东西,然后又出了这个Flutter,号称跨平台,这么牛逼不得学学?

下载

下载Flutter的SDK按照官网来就好了,记得设置

export PUB_HOSTED_URL=https://dart-pub.mirrors.sjtug.sjtu.edu.cn
export FLUTTER_STORAGE_BASE_URL=https://mirrors.sjtug.sjtu.edu.cn

//另外还需要
# Flutter SD位置
export PATH=/media/uzck/data/flutter/bin:$PATH 
# Android SDK位置
export ANDROID_HOME="/media/uzck/data/Android/Sdk"
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

特殊国情你懂得
安装完运行flutter doctor检测环境是否配置成功
我这是出现了**Android license status unknown.**这个错误,网上查资料说运行一遍flutter doctor --android-license,不过好像没起啥用,后面也没有因为这个出现问题

第一个项目

Android Studio版本升级高一点,之前用3.0没有教程里说的新建Flutter Project。新建完了有一个默认工程,按照AS的套路,启动模拟器运行就会有个Hello World了。这时候,问题出现了

找不到设备

在terminal里运行flutter devices是可以找到连接的设备的,于是又是一通搜索,在terminal里加上了

$ flutter config --android-sdk /path/to/android/sdk
$ flutter config --android-studio-dir /path/to/android/studio

重启AS,问题解决

卡在Initializing gradle

这个事在android开发过程中也遇到过,估计是下载gradle,然后网不给力就会出现,一个最简单的方法是挂代理,这个我没实践,具体可以参考其他资料。第二就是手动下载后放到gradle_dir目录下,我创建项目的时候,工程使用的gradle版本是3.1.2,ubuntu系统gradle默认目录是~/.gradle/,下载后放到wrapper/dists/里,在terminal输入flutter config --gradle-dir /path/to/gradle

卡在Resolving dependencies或报错

在android/build.gradle里可以看到默认的配置为

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }
}

allprojects {
    repositories {
       google()
       jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

也就是说包是从google()和jcenter下载的,看到google,就懂了 又是长城的问题。方法:替换成阿里的源,修改后的文件:

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

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }
}

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

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

这样配置还顺带解决了Could not find lint-gradle-api.jar的问题

总结

配这环境搞了一下午加一晚上,校园网访问国外的网跟乌龟一样。。
有种大二当时配了一天Android环境的既视感,希望以后能方便点吧,现在更新android sdk都不需要了

你可能感兴趣的:(flutter)