flutter ·

解决Flutter Running Gradle task ‘assembleDebug’

Flutter是谷歌的移动UI框架,他能够跨平台开发IOS和安卓端应用,随着2.0版本推出,web版本也可以实现了。但是在开发中我们大部分情况是使用Android Studio进行开发,使用安卓手机进行连接开发,然而,最后编译的时候可能会出现一直显示Running Gradle task 'assembleDebug'然后就不动了,或者会显示Could not resolve io.flutter等问题,归根结底是网络无法访问到Google服务引起的。下面来看一下具体解决办法。

找到Flutte SDK目录下的Flutter打包配置文件flutter.gradle

路径为flutter\packages\flutter_tools\gradle\flutter.gradle

flutter.gradle位置
1. 修改第一处,将google和jcenter这两个注释掉,添加maven

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.5.0'
    }
}
  1. 替换MAVEN_REPO地址
class FlutterPlugin implements Plugin<Project> {
    //此行注释掉
    // private static final String MAVEN_REPO      = "https://storage.googleapis.com/download.flutter.io";
    //新增加内容,替换MAVEN_REPO镜像地址
    private static final String MAVEN_REPO = "https://storage.flutter-io.cn/download.flutter.io";

    // The platforms that can be passed to the `--Ptarget-platform` flag.
    private static final String PLATFORM_ARM32  = "android-arm";
    private static final String PLATFORM_ARM64  = "android-arm64";
    private static final String PLATFORM_X86    = "android-x86";
    private static final String PLATFORM_X86_64 = "android-x64";

  1. 增加maven地址
void addFlutterDependencies(buildType) {
        String flutterBuildMode = buildModeFor(buildType)
        if (!supportsBuildMode(flutterBuildMode)) {
            return
        }
        String repository = useLocalEngine()
            ? project.property('local-engine-repo')
            : MAVEN_REPO

        project.rootProject.allprojects {
            repositories {
                maven {
                    url repository
                }
                //增加三个maven地址
                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' }
            }
        }

至此就可以进行build了,有的人还需要配置Flutter项目下的android下的build.gradle的镜像地址,个人通过测试无需处理,即可直接build。

参与评论