Gradle 错误解决合集

即使现在的生活不是自己想要的,
我也一直告诉自己:
要努力把现在的生活过好,
加倍地努力生活,热爱生活,
未来才会一步一步向我走来,
才能好好看一看这我热爱的世界。


你背单词时,阿拉斯加的鳕鱼正跃出水面;
你算数学时,太平洋彼岸的海鸥振翅掠过城市上空;
你晚自习时,极圈上的夜空散漫了五彩斑斓;
但是少年你别着急,
在你为自己未来踏踏实实地努力时,
那些你感觉从来不会看到的景色,
那些你觉得终身不会遇到的人,
正一步步向你走来。


我想象不到在这个星球发生的很多美好的景象,
所以我才努力,
因为世界那么大,我想去看看。

前言

将一些常见的错误整理下……

问题集合

META-INF

More than one file was found with OS independent path 
'META-INF/androidx.legacy_legacy-support-core-utils.version'

解决方案:

android {
    // 处理所有报META-INF/*'的错误
    packagingOptions {
        pickFirst 'META-INF/*'
    }
}

依赖冲突的解决方法

可以看看谷歌家出的官方的解决方案:点击跳转

Error: Program type already present: android.support.v4.app.INotificationSideChannel

在Android Studio中双击shift键,在搜索框中搜索上面错误出现的INotificationSideChannel
在这里插入图片描述点击选中androidx.core:core的那个INotificationSideChannel,之后在Android Studio的左边的Project面板点击上方按钮:
在这里插入图片描述之后就可以定位到包名。

之后我们需要在build.gradle中配置,排除掉它:

// 去除依赖冲突的模块
configurations {
    all*.exclude group: 'androidx.core', module: 'core'
    all*.exclude group: 'androidx.versionedparcelable', module: 'versionedparcelable'
}

语法说明
在这里插入图片描述
group对应的是上图中androidx.core:core:1.0.0@aar的冒号前面部分的androidx.core,即组织名称。
module对应的是上图中androidx.core:core:1.0.0@aar的冒号后面部分的core,即构建名称。

调试方法

显示当前依赖树

在Terminal中,进入到项目的根目录中,执行该语句:

gradle -q app:dependencies

常用Gradle命令

命令 说明
gradle -x 跳过指定task
gradle -b gradle -p 指定build脚本文件
gradle -q projects/tasks/properties 输出查看信息
gradle -m/–dry–run 查看指定task执行
gradle –profile 查看指定task执行时间,输出html

附录

发布了181 篇原创文章 · 获赞 217 · 访问量 45万+

猜你喜欢

转载自blog.csdn.net/Notzuonotdied/article/details/88427618