接触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都不需要翻墙了