flutter出现initializing gradle或resolving dependencies超时的解决方法

blakebai 2019-07-01

问题概况

在执行flutter run后,长时间卡在initializing gradle或resolving dependencies,然后报错。

这一情况通常是因为无法从Google和JCenter中获取相关资源所导致的,而gradle在进行资源访问时由于会绕过系统代理(未证实),所以即使有时在配置了代理的情况下也无法访问成功。

解决方案

这一解决方案只在mac上用过,不过Windows和Linux也是一样的操作。在不科学上网的情况下,可以用阿里云的源来替代Google和JCenter,可以修改以下两个文件中的一个(或者都改了)。

修改项目目录中的build.gradle

修改项目中的build.gradle可以修改当前项目gradle使用的源,位置如下:

你的flutter项目根目录/android/gradle/build.gradle

进行如下修改:

buildscript {
    repositories {
        // google()
        // jcenter()
        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' }
    }

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

allprojects {
    repositories {
        // google()
        // jcenter()
        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' }
    }
}
...

修改flutter的flutter.gradle

也可以选择直接修改flutter SDK中的gradle文件,位置如下:

你的flutter SDK根目录/packages/flutter_tools/gradle/flutter.gradle

进行如下修改:

import ...
...
buildscript {
    repositories {
        // google()
        // jcenter()
        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'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
    }
}
...

相关推荐