解决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
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'
}
}
- 替换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";
- 增加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。