在问题排除过程中,根据网上的博客猜测是版本Gradle和Gradle Plugins不匹配产生的问题,但是发现sync的过程中,build.gradle、settings.gradle中并未有如上现象。对此我百思不得其解。我不得已对项目中Gradle Scripts中的每个文件进行查询发现,在Gradle Scripts下的gradle.properties文件中,出现了下面的几行代码:
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx1024m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
#Tue Mar 29 12:47:27 CST 2022
systemProp.http.proxyHost=mirrors.neusoft.edu.cn
systemProp.https.proxyHost=mirrors.neusoft.edu.cn
systemProp.https.proxyPort=80
systemProp.http.proxyPort=80它竟然给我挂上了http代理,但是当我打开File->settings->Appearance&Beavior->System Settings->HTTP Proxy的时候,明明已经修改成了No proxy,为什么还会对我的插件下载挂上代理。而且在我进行Gradle sync之前,我便修改了这个选项使得能正常下载Gradle。
原因是,我曾经按照博客教学安装AS的时候,刚打开AS的第一个界面就是让我设置AS的Proxy,而按照某些过时的博客上所讲,从官方的源下载会很慢,于是我就设置了代理并规定了端口号。这时设置完成后,实际上是写入了全局的设置里,而我在settings中修改的选项,只应用于当前的Projects。我后来修改的HTTP代理,只对AS有效。
也就是说,你在AS里面下载Gradle是走AS里面的代理,而我后来gradle sync中下载的gradle插件则是走的全局设置。
于是在AS全局的设置中(位于C:\Users\Aerith\.gradle\gradle.properties),将上述的代码注释掉:
# systemProp.http.proxyHost=mirrors.neusoft.edu.cn
# systemProp.https.proxyHost=mirrors.neusoft.edu.cn
# systemProp.https.proxyPort=80
# systemProp.http.proxyPort=80
保存,即可解决问题。