gradle问题_gradle版本问题 - CSDN
精华内容
参与话题
  • Gradle 入门-版本冲突问题

    千次阅读 2018-12-07 14:50:22
    本文作者:黄少存,叩丁狼高级讲师。...接下来咱们先来看个存在传递性依赖过程中 jar 测版本冲突问题,再来看下 Gradle 有哪些的处理方法. 传递性依赖中的版本冲突 hibernate中slf4j的版本冲突问题...

    本文作者:黄少存,叩丁狼高级讲师。原创文章,转载请注明出处。

    在之前的文章上,咱们已经知道了如何添加依赖,接下来咱们来看下如何来管理依赖.其实管理依赖的最重要的环节就是传递性依赖过程中存在的版本冲突的问题处理.接下来咱们先来看个存在传递性依赖过程中 jar 测版本冲突问题,再来看下 Gradle 有哪些的处理方法.

    传递性依赖中的版本冲突

    hibernate中slf4j的版本冲突问题

    上图咱们可以知道,咱们需要依赖 hibernate3.6.3 的版本,而此版本需要依赖几个 jar 包,而依赖的 hibernate-commons-annotations.jar 依赖了一个slf4j 的jar包,当前hibernate框架也依赖了slf4j 的 jar 包.由于传递性依赖的特点,两个不同版本的 jar 包会被依赖进来,这样就存在版本冲突的问题.

    存在版本冲突问题是需要解决的,如果没有解决程序就会出问题,那咱们使用 Gradle 做依赖管理,要如何来解决此问题? Gradle 有没有帮咱们解决此问题? 请继续往下看版本冲突的解决方案.

    版本冲突解决方法

    对于 Maven 的自动处理传递性依赖版本冲突问题,是按最短路径和优先声明原则来处理.

     

    Maven自动解决版本冲突原则

    而对于 Gradle 来说同样有着自动处理传递性依赖版本冲突问题的功能,只是 Gradle 是默认使用版本最高的.而针对一些特殊的需求还是需要使用手动解决.以下便是 Gradle 的手动处理版本冲突.

    1 修改默认配置策略

    如果想检查有哪些 jar 包有版本冲突,或者想去除 Gradle 的默认处理方式,可修改默认的配置策略.

    • 1 在 build.gradle 中加入如下配置
    configurations.all{
      resolutionStrategy{
          // 修改 gradle不自动处理版本冲突
          failOnVersionConflict()
      }
    }
    
    • 2 执行 help -> dependencies 可查看冲突的 jar 包
    A conflict was found between the following modules:
    - org.slf4j:slf4j-api:1.6.1
    - org.slf4j:slf4j-api:1.5.8
    

    以上配置完,如果存在依赖 jar 包版本冲突问题, Gradle 将不再自动处理,build 会抛异常.

    2 排除传递性依赖

    • 排除单个jar 包的传递性依赖
    dependencies {
       compile (group: 'org.hibernate', name: 'hibernate-core', version: '3.6.3.Final'){
           // module 是 jar 的 name
           exclude group:"org.slf4j" , module:"slf4j-api"
       }
    }
    

    此处的 module 指的是 jar 的 name,值无需写版本,此配置的意义就是排序 hibernate-core 引入时 slf4f-api 的传递性依赖.也就是说咱们的项目目前没有依赖任何版本的 slf4f-api.

    • 排除所有 jar 的传递性依赖
    dependencies {
        compile (group: 'org.hibernate', name: 'hibernate-core', version: '3.6.3.Final'){
            transitive=false
        }
    }
    

    transitive 默认为true ,表示 Gradle 自动添加子依赖项,设置为false 则需要手动添加每个依赖项,在真实开发中,需要自动添加子依赖的比较多,而手动添加的比较少,毕竟使用工具的主要目的是减少工作量嘛,所以开发中此配置建议不使用.

    3 强制指定一个版本

    给有冲突的 jar 包强制指定一个版本,在 build.gradle 中配置如下

    configurations.all{
        resolutionStrategy{
            force 'org.slf4j:slf4j-api:1.7.24'
        }
    }
    

    执行 help -> dependencies 可看到所有的 slf4j 都改为了1.7.24 的版本了.

    以上便是 Gradle 在传递性依赖中的版本冲突问题的默认解决方式介绍和如何手动解决版本冲突的两种方案.

    至此咱们已经掌握了如何使用 Gradle 配置依赖和管理依赖,下一篇咱们就来做个小实践.期待<<Gradle 的多项目构建>>

    想获取更多技术视频,请前往叩丁狼官网:http://www.wolfcode.cn/all_article.html

    展开全文
  • 但是存在着一个问题,就是有很多项目的Gradle版本和我们自己的Gradle版本不一致 ,导入无法运行或者各种问题。 现在给大家讲一下我的方法: 首先我的Gradle版本是2.2.2版本的,Gradle版本是2.14.1。 这里涉及到几个...

    GitHub上有很多的代码可供我们参考学习。但是存在着一个问题,就是有很多项目的Gradle版本和我们自己的Gradle版本不一致 ,导入无法运行或者各种问题。

    总结了多次,遇到新的情况会不断的更新。现在给大家讲一下我的方法:

    这里涉及到五个要素:

    (1)自己的Gradle插件版本和要导入的项目的Gradle插件版本需要一样。这个可以直接从文件夹中直接点入到根目录,找到其中的build.gradle文件,打开会看到自己的gradle版本号如下:

    由图可知我的gradle版本是2.2.2。同理可查看自己要导入的gradle版本号。然后将要导入的这个版本号改成自己的gradle版本号即可,这点很重要。

     

    (2)就是将要导入的项目的根目录gradle文件夹下的内容都删掉。file——>Open ——>找到要导入的会出现以下弹:

     

    点击ok,这个gradle的具体位置在C:\Users\Administrator\.gradle\wrapper\dists\gradle-3.3-all(系统弄的默认目录下)。

    (3)要确保我们的Setting中的Gradle配置是正确的,如下:

     

    当然我们也可以下载一些gradle文件放到这个目录下,以后导入项目的时候就不会出现那么多问题了。

    选中 offline work 是为了让我们的项目先导入成功,不一致在building界面,导入成功之后,再将offline work 取消,重新同步项目下载。

    (4)还有一种情况,我们要选中项目的根目录,即我们选中的项目是在一个文件夹中的,而不是零散的文件。

    主要注意以上四点就行了。然后开始导入项目。

     

    (5)将Offline work 取消选择,然后重新同步下载依赖,第一次可能下载半天没反应,这时候,我们关掉studio 重新进入,就会快很多。

     

    希望能帮到有需要的童鞋。

     

     

     

     

     

    
    展开全文
  • 1.引子刚开始从Eclipse转到Android studio时经常出现各种环境问题,最主要的就是在导入github项目时gradle出现问题,本篇博客主要讲解为什么会出现这些问题以及解决办法。希望能帮到同样被这些问题折磨的朋友们。 先...

    1.引子

    刚开始从Eclipse转到Android studio时经常出现各种环境问题,最主要的就是在导入github项目时gradle出现问题,本篇博客主要讲解为什么会出现这些问题以及解决办法。希望能帮到同样被这些问题折磨的朋友们。 先来几张大家熟悉的图片吧
    这里写图片描述
    这里写图片描述
    这里写图片描述


    2.概念介绍

    首先需要知道andoid studio中gradle有一个Gradle version 和一个Android Plugin Version。Android studio 中file - project Structure - Project可以查看当前环境(所有子项目默认使用这个也可以自己配置,下面会介绍)的配置
    这里写图片描述

    上面的配置是的Android studio默认的Gradle version,当前工程的Gradle version配置在project - gradle - wrapper - gradle-wrapper.properties下
    这里写图片描述

    当前工程的Android Plugin Version配置在project - build.gradle下
    这里写图片描述

    设置使用默认环境配置与当前项目配置在File - settings - Build,Ex.. - Gradle
    这里写图片描述


    3.问题原因

    第一个问题(卡在refreshing)的主要原因是gradle被墙了,我们不能直接使用android studio下载,否则就会一直Refreshing(如果已经这样了,用任务管理器结束as)。

    第二个问题(gradle版本过低)是因为不同的Plugin version有最低版本Gradle version限制
    这里写图片描述


    4.解决办法

    第一个问题(卡在refreshing)。
    首先 让android studio卡在refreshing,这时虽然不能下载但是会自动创建一个空的文件夹后面需要这个。同时获取offline work位置
    这里写图片描述
    现在可以用任务管理器结束as了

    然后 我们自己去下载gradle(建议下载比较新的版本),我这儿放一个当前最新的3.5版本云盘分享https://pan.baidu.com/s/1mhAPTaw,也可以去https://gradle.org/releases下载需要的版本。

    接着把下载的gradle-x.x-all放到对应版本的文件夹下
    这里写图片描述
    exhrs6ca08n232b14ue48lbye这个文件夹名是第一步生成的。

    最后打开as,把环境默认gradl设置为刚刚下载的版本
    plugin version不用管,这个as自动可以下载
    这里写图片描述
    同时设置项目使用默认的gradle版本
    这里写图片描述
    ok,关闭as - 重启,第一次需要等待自动解压下载的gradle。然后就可以了

    第二个问题(gradle版本太低)
    按照问题一的解决办法,去下载高于plugin version需要的最低gradle version。对应关系图在上面问题原因已经贴出来了。


    看到这儿希望各位朋友的问题已经解决了。

    展开全文
  • gradle问题汇总

    2019-07-27 14:18:21
    问题:从SVN下载到本地后,gradle无法同步,报错如下:Failed to resolve: support-core-utilsFailed to resolve: support-media-compatFailed to resolve: support-compat解决:修改app/build.gradle文件 ...

    问题:
    从SVN下载到本地后,gradle无法同步,报错如下:
    Failed to resolve: support-core-utils
    Failed to resolve: support-media-compat
    Failed to resolve: support-compat
    解决:
    修改app/build.gradle文件
    implementation 'com.android.support:cardview-v7:27.0.2'
    implementation 'com.android.support:design:27.0.2'
    implementation 'com.android.support:customtabs:27.0.2'
    implementation 'com.android.support:support-v13:27.0.2'
    改为
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:customtabs:27.1.1'
    implementation 'com.android.support:support-v13:27.1.1'

    然后执行build->make project,弹出对话框时,选update

    转载于:https://www.cnblogs.com/bloodofhero/p/9946297.html

    展开全文
  • gradle常见问题

    2020-10-17 09:17:10
    gradle常见问题 1.一查 项目使用的gradle版本是否下载完成,否则会提示zip包相关的错误, C:\Users\用户名.gradle\wrapper\dists 下有各种下载的版本,以我的gradle5.6.4-bin版本为例,下载好后bin目录下面有这两个...
  • Gradle问题小记

    千次阅读 2017-08-07 11:10:39
    这里首先你要排除你的代理是否有问题。如果没有问题,或者就没有设置代理。那么请继续往下看。否则这里解决不了你的问题。 进入项目的根目录找到gradle文件夹中的gradle.properties文件,打开文件你看到的内容大概是...
  • 关于Gradle版本问题

    千次阅读 2017-10-12 16:20:40
    一、gradle常见的问题。情况一 : 在使用 Android Studio 调用其他工程时候,我们总要遇到这样的问题: Error:Minimum supported Gradle version is 2.14.1. Current version is 2.10. If using the gradle ...
  • 一、新建项目build报错,但是rebuild没有任何问题 代码优先: dependencies { androidTestCompile('com.android.support:support-annotations:26.1.0') { force = true } ... } 每次新建项目的时候,都会报...
  • Cordova 生成Android的gradle问题

    千次阅读 2018-01-29 15:50:41
    cordova升级7.0后,运行 ionic build android 或者 cordova build android 报出错误 ...Error: Could not find an installed version of Gradle either in Android Studio, or on your system to install the
  • gradle资源包是通过android studio 远程访问安卓的gradle仓库进行下载的 难免会出现网络不佳,以及被墙的情况(并不是所有人都会遇到) 开始正文: 1.现象说明 gradle失败会显示这个界面 2.首先确认自己的g...
  • IDEA2020.1配置Gradle问题

    千次阅读 2020-06-29 15:53:28
  • Android Studio更新Gradle问题

    千次阅读 2017-01-20 16:36:35
    Android Studio基于Gradle对项目进行自动化构建,所以它时不时更新一下Gradle的版本。这本不是问题。但在GW里面,这却是一个大问题:要么更新巨慢,要么直接超时错误。 对此,解决方式就是转Android Studio的自动...
  • 使用gradlew来build项目时,...但是gradle-2.8-all.zip非常大,有60MB左右,而服务器又在国外,因此经常各种下载失败。 从本地安装的方法如下: 先下载gradle-2.8-all.zip包。 把下载好的zip包放到{p
  • Android Studio Gradle相关问题

    千次阅读 2016-12-22 11:28:29
    AndroidStudio 如何快速打开工程? gradle怎么配置?
  • 一、 编写说明 二、 gradle使用过程的问题
  • 如果你正在开发一个库,并将它传上 jcenter 或者 jitpack,由于没上线,于是你一直上传 1.0 的版本,不停地覆盖远程仓库上的版本,但是你遗憾地发现本地的 gradle 出了问题,那么是由于 gradle 在下载依赖的同时自动...
  • 开篇废话 昨晚升级了Android Studio3.0正式版,然后Gradle也需要升级,结果等了一晚上都没更新完,早上起来,查了查,发现是在墙外,更新一年...在这个网址可以下载到gradle最新版本修改project的gradle版本Gradle Scr
  • android studio 2.0出现的gradle问题,instant Run即时运行不了. 经历了几乎9个preView版本的AS2.0,终于迎来了正式版,然而晴天我的霹雳,好不容易装好的2.0正式版却用不了,那个牛哄哄的功能,主要问题看下面. 错误信息...
  • gradle project sync failed.Basic functionality(e.g.editing,debugging) will not work properly 1、可以下载离线的gradle包 第一次建立工程卡在该界面的时候,是因为在从网上下载gradle构建工具,由于从国外...
  • AndroidStudio3.4.1版本 classpath 'com.android.tools.build:gradle:3.4.1' gradle版本 1、gradle网址:http://services.gradle.org/distributions/ ...修改文件gradle/wrapper/gradle-wrapper...
1 2 3 4 5 ... 20
收藏数 198,705
精华内容 79,482
关键字:

gradle问题