Android Gradle - Gradle常见异常

这篇博客记录了在升级Android Studio至4.1.2版本后遇到的Gradle相关错误及解决办法,包括依赖缓存错误、找不到Gradle插件、Gradle构建问题等。作者提供了详细的错误分析和解决步骤,如更改Gradle-wrapper.properties文件、调整build.gradle脚本、更新greenDao库等。同时,还提到了内存配置、JDK版本不一致等问题的处理方式。
摘要由CSDN通过智能技术生成

近期才将AndroidStudio升级到了4.1.2 ,在升级中遇到了一些关于Gradle相关的错误,索性整理归纳入档 ~

Gradle 相关

工欲善其事,必先利其器(Gradle下载地址)

报错: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

在这里插入图片描述

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远方那座山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值