近期才将AndroidStudio升级到了4.1.2 ,在升级中遇到了一些关于Gradle相关的错误,索性整理归纳入档 ~
如不了解Gradle相关知识,可以 去看看 Gradle、Android Gradle plugin 解析
-
-
-
- 报错:Gradle‘s dependency cache may be corrupt
- 报错:Could not find com.android.tools.build:gradle
- 报错:Could not find com.android.tools.build:gradle:x.x.x (x.x.x 版本号,如 3.5.0)
- 报错:org.gradle.api.ProjectConfigurationException: A problem occurred configuring
- 报错:Unable to find method 'org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object...'
- 出错:Gradle sync failed:Unable to start the daemon process
-
-
报错:Gradle‘s dependency cache may be corrupt
我是在AndroidStudio升级4.1后遇到的此项错误,简单可以看出为请求超时,因为As升级后需要配对应的Gradle版本,但是其中资源部分是需要翻墙下载的,而国内的禁止翻墙的,所以就会报出此项错误 ~
尝试通过上方地址下载该As版本对应的Gradle版本,下载好之后放于引用地址,然后更改工具内的Gradle引用地址
- 将已下载好的gradle,存于.gradle\wrapper\dists文件夹下
- 修改 Gradle Scripts - gradle-wrapper.properties 内加载路径
原路径
#网络加载,需要先行下载,因为是外网,所以往往会加载失败,恶性循环
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
修改后路径
#加载本地资源(此资源是已经下载好的)
distributionUrl=file:///C:/Users/Acer/.gradle/gradle-6.5-all.zip
结果图
- 查看是否加载本地资源 File - Setting - Build,Execution,Deployment - Gradle
- Syan 之后可通过File - Project Structure 查看当前对应的版本信息
报错:Could not find com.android.tools.build:gradle
此错是由于gradle版本造成的,如不想升级gradle版本,需使用原来低版本的方法。
buildscript {
repositories {
maven {
url 'https://maven.google.com/'
name 'Google'
}
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
}
报错:Could not find com.android.tools.build:gradle:x.x.x (x.x.x 版本号,如 3.5.0)
根据提示是 build:gradle 出了问题,首先要明白插件版本和gradle版本是俩回事儿!
我们先查看当前的Gradle版本是多少?然后确定此Gradle对应的插件版本是否正确?
如都正确的话,在 build.gradle(Project)中加入以下你缺失的设置代码
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
报错:org.gradle.api.ProjectConfigurationException: A problem occurred configuring
主要原因是部分资源(包含jar包)需要通过外网下载,而我们连接不到外网,故此下载失败,所以报错 ~
首先参考最上方的 ‘may be corrupt 错误’
,先行配置好gradle,如若无效继续往下看 ~
build.gradle(Project)
buildscript {
repositories {
google()
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
mavenCentral()
}
allprojects {
repositories {
/**
//如上方设置后,没有解决问题,尝试将上方设置代码移动到此处,可解开注释
google()
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
mavenCentral()
*/
maven{
url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
报错:Unable to find method ‘org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object…’
首先看看当前项目是否使用greenDao数据库,因为报错信息提示:您的项目可能使用的第三方插件与项目中的其他插件或项目所要求的Gradle版本不兼容。在损坏Gradle进程的情况下,您还可以尝试关闭IDE,然后杀死所有Java进程 ~
-
查看 build.gradle(Project)内是否有引用gradle的地方,具体如下
-
经上发现greendao也有引用gradle,所以我们将此更新到其最新版本
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.2'
//原版本
// classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
//现版本
classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
- 同时我们将build.gradle(app)内的依赖引入版本进行更换
//原版本
//implementation 'org.greenrobot:greendao:3.2.2'
//现版本
implementation 'org.greenrobot:greendao:3.3.0'
出错:Gradle sync failed:Unable to start the daemon process
错误翻译:无法启动守护进程
首先要判断此错误是否之前不存在?而是你手动修改某些配置后并发产生的?如果是的话,那么先还原之前设置,如果要在现在基础上继续修改错误的话,可尝试以下的解决方式 ~
gradle.properties内设置运行内存大小
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# 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
org.gradle.daemon=true
android.injected.testOnly=false
如依旧无效可查看是否连接热点,如有则关闭热点,之后重启As或电脑,也可以尝试File - Invalidate Caches/Restart…