开口神气散,意动火工寒
Android项目中一般都会存在 1个Project的build.gradle 和 n 个 Module的build.gradle.
1. 问题来源
MPAndroidChart 的集成,如下图所示:
今天在这里犯了一个错误,导致出现上面的问题:
// 这里要放在Project的build.gradle文件中
repositories {
maven { url 'https://jitpack.io' }
}
// 这里大家都知道放在Module的build.gradle文件中
dependencies {
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
}
问题一
为什么会出现Could not resolve all dependencies for configuration的错误呢?
首先我们先来看一下Project的build.gradle文件的内容:
buildscript {
// 注意这里
repositories {
maven { url 'https://jitpack.io' }
google()
jcenter()
}
...
}
allprojects {
// At the same time,注意这里
repositories {
maven { url 'https://jitpack.io' }
google()
jcenter()
}
}
我们会发现 buildscript和 allprojects 标签下都含有 repositories。
上面的错误就是只在buildscript下添加maven { url ‘https://jitpack.io’ } 所导致的。
问题二
buildscript和 allprojects 标签下的 repositories 有什么不同呢?
通常情况下,保持两者相同即可。
buildscript 是 Gradle 自身所使用的。
allprojects 是 项目模块所使用的。
具体内容可以参考:buildscript和allprojects的作用和区别是什么?
2. 解决方案
通过上面的内容,我们明白了Project的build.gradle的构成,解决方案自然也就跃然纸上…
最保险的办法就是:保持buildscript 和 allprojects的 repositories内容一致。
3. 补充内容
通过StackOverFlow的解决方案 发现这种问题的原因有很多。希望这个链接能帮助大家。