android项目出现依赖冲突的多个解决方案

1、在build.gradle中使用如下方式从依赖库中剔除传递依赖项

随着应用的范围不断扩大,它可能会包含许多依赖项,包括直接依赖项和传递依赖项(应用中导入的库所依赖的库),如需排除不再需要的传递依赖项,可以使 exclude关键字

2、使用all*.exclude剔除所有的传递依赖项

3、直接使用如下方式剔除所有group依赖

4、将项目中已经依赖了的libary,如果其他第三方依赖库中也包含这个依赖,可以使用transitive设置为false表示关闭依赖传递(不再重复依赖已经依赖的库)

例如下图,由于项目中已经依赖了okhttp,retrofit中也会默认依赖okhttp,而我们不想让retrofit重复依赖,则可以使用如上方式;此外如果打开force ture,则会使项目相关的所有依赖都强制使用该版本依赖库(无视版本其他版本高低)

5、使项目都强制指定依赖库版本(无视其他同名依赖项和版本)

ps额外补充:

其他方式参考

configurations.all {

// check for updates every build

resolutionStrategy.cacheChangingModulesFor 0, 'seconds'

resolutionStrategy{

force 'com.android.support:support-v4:26.1.0'

}

}

configurations.all() {

Configuration configuration ->

configuration.resolutionStrategy.cacheChangingModulesFor(0, 'seconds')

resolutionStrategy.setForcedModules(['com.android.support:support-v4:23.4.0'])

resolutionStrategy.setForcedModules(['com.okay.client_app:mediaplayersdk:1.3.6'])

resolutionStrategy.setForcedModules(['com.okay.client_app:libtexerciseview:2.20.2-SNAPSHOT'])

}

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
问题描述: 有时候,当我们在Android Studio中打开一个项目时,Gradle会一直处于构建运行状态(build running),这会导致我们无法进行任何操作,包括编写代码、查看布局和执行应用程序。 原因分析: 1. Gradle 的版本问题 —— Android Studio 使用 Gradle 来构建和编译项目,由于 Gradle 本身的问题而导致构建出现错误。 建议:在项目的 build.gradle 文件中修改 Gradle 版本或更新 Gradle,或在 Gradle 的配置中进行相关修改。 2. 依赖项包冲突 —— 如果项目中两个或多个依赖项包的版本不兼容,则可能会导致构建出现错误。 建议:使用最新的版本进行升级,并检查所有依赖项包的版本,确保它们都能兼容。 3. Gradle 缓存问题 —— Android Studio 在编译和构建过程中会使用 Gradle 缓存,如果这些缓存不完整或损坏,则可能会导致构建出现错误。 建议:清理 Gradle 缓存或重新创建一个项目。 4. 其他问题 —— 如:网络问题、磁盘空间不足、操作系统故障等。 建议:检查您的系统设置和网络连接,确保您有足够的磁盘空间,并检查操作系统以查看是否存在任何故障。 解决方案: 1. 更改 Gradle 版本或更新 Gradle 2. 检查依赖项包版本,确保它们都能兼容 3. 清理 Gradle 缓存或重新创建一个项目 4. 检查您的系统设置和网络连接,确保您有足够的磁盘空间,并检查操作系统以查看是否存在任何故障。 综上所述,造成 Android Studio 打开项目 Gradle 一直 build running 的原因较多,解决问题时需要逐一排查,并结合实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值