近期才将AndroidStudio升级到了4.1.2 ,在升级中遇到了一些关于Gradle相关的错误,索性整理归纳入档 ~
Gradle 相关
- Android Gradle - Gradle、Gradle plugin 基础认知
- Android Gradle - AndroidStudio 中 Gradle 依赖全解
- Android Gradle - 全面加速 Gradle Build 编译
- Android Gradle - Gradle常见异常
- 报错: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
- 报错:Cannot access ‘java.lang.Comparable‘ which is a supertype of ‘org.gradle.kotlin.dsl.KotlinBuildScr
报错: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
…
报错:Cannot access ‘java.lang.Comparable‘ which is a supertype of ‘org.gradle.kotlin.dsl.KotlinBuildScr
项目可正常运行,仅表现为gradle提示全红
问题的原因是,依赖的jdk和gradle里面制定的java版本不一致导致的。
首先确认项目中依赖的java版本
我这边gradle定义了java 1.8
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
然后到setting里面下载对应的jdk 版本,apply