在构建flutter开发环境的时候,android studio 报错:
Launching lib\main.dart on Android SDK built for x86 64 in debug mode...
Initializing gradle...
Resolving dependencies...
* Error running Gradle:
ProcessException: Process "C:\Codes\kakaCode\Android\flutter_app\android\gradlew.bat" exited abnormally:
> Configure project :app
Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\Codes\kakaCode\Android\flutter_app\android\app\build.gradle' line: 24
* What went wrong:
A problem occurred evaluating project ':app'.
> Could not resolve all artifacts for configuration 'classpath'.
> Could not find aapt2-proto.jar (com.android.tools.build:aapt2-proto:0.3.1).
Searched in the following locations:
https://jcenter.bintray.com/com/android/tools/build/aapt2-proto/0.3.1/aapt2-proto-0.3.1.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 0s
Command: C:\Codes\kakaCode\Android\flutter_app\android\gradlew.bat app:properties
Finished with error: Please review your Gradle project setup in the android/ folder.
其实核心问题是在
Build file 'C:\Codes\kakaCode\Android\flutter_app\android\app\build.gradle' line: 24
也就是这一句:
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
通过println输出一下,发现是加载
C:\flutterSDK\flutter\packages\flutter_tools\gradle目录下的flutter.gradle文件报错。
这里flutter的SDK目录根据个人配置的系统Path的flutter的位置决定。
原因是通过jcenter()加载包失败。
嘛,伟大的中国长城牌防火墙总是试图阻挡技术人员工作。
知道问题了,解决办法就出来了。
1. 找个梯子翻越长城。
2. 找个镜像。
稳妥一点,这里直接用阿里的镜像服务器吧。
将android项目目录下的build.gradle中的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'}
然后找到刚才报错的那个引用的文件:
C:\flutterSDK\flutter\packages\flutter_tools\gradle\flutter.gradle
如下更改:
buildscript {
repositories {
//jcenter()
//maven {
// url 'https://dl.google.com/dl/android/maven2'
//}
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.2.1'
}
}
就是讲所有gradle脚本中的库全部替换为阿里的镜像。
然后就搞定了。