解决Android studio 编译flutter项目 卡在Running Gradle task ‘assembleDebug‘ ——筑梦之路
用Android Stduio
创建Flutter
项目的时候,会出现各种问题,踩了一个又一个,最后编译的时候可能会出现一直显示Running Gradle task 'assembleDebug'
然后就不动了,或者会显示Could not resolve io.flutter
等问题,归根结底是网络无法访问flutter官方源引起的,两种解决方案:
1.具有比较良好的访问flutter官方源的网络环境
2.修改镜像源为国内的:
找到Flutte SDK
目录下的Flutter
打包配置文件flutter.gradle
路径为flutter\packages\flutter_tools\gradle\flutter.gradle
第一处配置:
buildscript {
repositories {
//注释
// google()
// jcenter()
//添加
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
}
}
第二处配置:
class FlutterPlugin implements Plugin<Project> {
//注释
// private static final String MAVEN_REPO = "https://storage.googleapis.com/download.flutter.io";
//添加这行
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";
// The ABI architectures.
private static final String ARCH_ARM32 = "armeabi-v7a";
private static final String ARCH_ARM64 = "arm64-v8a";
private static final String ARCH_X86 = "x86";
private static final String ARCH_X86_64 = "x86_64";
第三处配置:
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 { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
}
}
最后一处,项目中的配置,修改Flutter
项目下的android
下的build.gradle:
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
// google()
// jcenter()
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
// google()
// jcenter()
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
}
}
修改完成后,再build,就可以正常构建了!!!
我也查过很多资料,网上很多资料要么是gradle构建工具没下载下来,下载太慢,要么是修改了项目里面的配置,要么是修改全局的flutter.gradle配置,都还是存在一些问题,我通过修改这四处配置,成功运行。
全局环境变量:
PUB_HOSTED_URL https://mirrors.tuna.tsinghua.edu.cn/dart-pub
FLUTTER_STORAGE_BASE_URL https://mirrors.tuna.tsinghua.edu.cn/flutter
阿里云的仓库地址:
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
flutter SDK 清华大学镜像地址:
https://mirrors.tuna.tsinghua.edu.cn/flutter/flutter_infra/releases/stable/
修改resolve_dependencies.gradle
repositories {
//google()
//jcenter()
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
maven {
url "$storageUrl/download.flutter.io"
}
}
以上内容是自己经过实践总结所得,在此做个记录!
-----2022-7-27
以上是内容环境是1.x,对于2.0以上的执行flutter doctor会报错:
HTTP host https://maven.google.com/ is not reachable.Reason: An error occurred while checking the HTTP host
解决办法:
修改flutter sdk目录下文件packages\flutter_tools\lib\src\http_host_validator.dart
# 1. 找到代码21-24行
/// Android specific required HTTP hosts.
const List<String> androidRequiredHttpHosts = <String>[
'https://maven.google.com/',
];
# 将https://maven.google.com/ 修改为
# https://dl.google.com/dl/android/maven2/或者https://maven.aliyun.com/
/// Android specific required HTTP hosts.
const List<String> androidRequiredHttpHosts = <String>[
'https://maven.aliyun.com/',
];
# 2. flutter sdk bin目录,删除cache目录下的flutter_tools.snapshot 文件
# 3. 新开cmd 重新运行flutter doctor
参考资料:
flutter | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
相关文章
- 安卓 android studio 报错 The specified Android SDK Build Tools version (27.0.3) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle
- [Android Pro] 常用的android工具类和库
- Flutter Android Toast Message(flutter访问Android Toast Message)
- 1、Android Studio集成极光推送(Jpush) 报错 java.lang.UnsatisfiedLinkError: cn.jpush.android.service.PushProtoco
- Android Studio直接运行影响启动性能
- [重要]使用Vitamio打造自己的Android万能播放器(10)—— 本地播放 (缩略图、视频信息、视频扫描服务)
- Android studio补全代码和自动提示突然没了,怎么办?
- Android Studio 如何设置自动删除无用的包、自动导入包
- Android 扩大View的点击范围
- 【错误记录】Android Studio 编译报错 ( AAPT: error: failed to read PNG signature: file does not start with PN )
- 【Android 安装包优化】WebP 图片格式 ( WebP 图片格式简介 | 使用 Android Studio 转换 WebP 图片格式 )
- Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)
- Android Studio 初体验
- android笔记:DatePickerDialog日期设置对话框
- Android Studio调用系统的代码中Build.VERSION.SDK_INT >= Build.VERSION_CODES.xxx
- Android Studio 添加图标
- Android Studio的报错提示:android.content.res.Resources$NotFoundException: Resource ID #0xfffffe6c
- android开发,Android Studio Build Output 输出的中文显示乱码