从Android Studio 3.0(Canary 5)迁移到Android Studio 3.0(Beta 1)后,转移到最新的gradle,即'com.android.tools.build:gradle:3.0.0-beta1'
当我尝试重新同步时,错误说明如下。
Failed to resolve: com.android.support:multidex:1.0.2
Failed to resolve: com.android.support:multidex-instrumentation:1.0.2
我查看了Android Studio 3.0 Canary 9 - Failed to resolve packages,它没有解决我的问题,因为我已经有了这个
maven {
url 'https://maven.google.com'
}
我很惊讶它甚至要求multidex 1.0.2,因为我只在build.gradle中有
compile 'com.android.support:multidex:1.0.1'
我使用./gradlew app:dependencies | grep multidex
进行检查,它会显示以下各种故障(各种风格等)
+--- com.android.support:multidex-instrumentation:1.0.2 FAILED
+--- com.android.support:multidex:1.0.1
+--- com.android.support:multidex:1.0.2 FAILED
+--- com.android.support:multidex:1.0.1 -> 1.0.2 FAILED
multidex:1.0.2
和multidex-instrumentation:1.0.2
的依赖关系来自哪里?我怎么能解决这个问题?
答案 0 :(得分:92)
显然我的问题是我应该发布这个:
maven {
url 'https://maven.google.com'
}
<{1>}中的而不是allprojects
中的buildscript
(微妙的差异使我在问题所在的地方失明了),然后看起来像这样:
allprojects {
repositories {
maven {
url 'https://maven.google.com'
}
}
}
感谢M D指针!
答案 1 :(得分:22)
对我来说,解决方案是移动 google()项目以确保它在 jcenter()之前。实际上,我会将 google()放在所有存储库的第一位。
答案 2 :(得分:10)
还需要添加以下内容:
编译'com.android.support:multidex:1.0.3'
添加上述内容后,除上述答案外,它对我有用
答案 3 :(得分:6)
首先,您需要清理项目,然后重建它。
构建----&gt;清洁项目
构建----&gt;重建项目
答案 4 :(得分:6)
allprojects {
repositories {
google()
}
}
为我而不是
工作allprojects {
repositories {
maven {
url 'https://maven.google.com'
}
}
}
答案 5 :(得分:5)
如果你在中国, 请使用
allprojects {
respositories {
google()
}
}
改为
allprojects {
respositories {
maven {
url 'https://maven.google.com'
}
}
}
不要问我为什么,我不想告诉你......可能是GFW选择了'https://maven.google.com'吗?
答案 6 :(得分:3)
在我的所有项目中添加google()解决了我的问题...
allprojects {
repositories {
jcenter()
google()
}
}
答案 7 :(得分:2)
如果以上解决方案均无效,请添加mavenLocal()
:
allprojects {
repositories {
jcenter()
maven {
url 'https://maven.google.com'
}
mavenLocal()
google()
}
}
答案 8 :(得分:1)
向上移动 google()项目,以确保它位于 jcenter()之前。
repositories {
jcenter()
google()
}
答案 9 :(得分:0)
将所有gradle依赖项更新为最新版本.. 就是这样
答案 10 :(得分:0)
我的问题是网络连接。我需要连接到VPN服务器才能连接到jcenter