Android Studio 3.0 Beta 1:解析失败:com.android.support:multidex:1.0.2

Android Studio 3.0 Beta 1: Failed to resolve: com.android.support:multidex:1.0.2

从 Android Studio 3.0 (Canary 5) 迁移到 Android Studio 3.0 (Beta 1),并移动到最新的 gradle 之后,即 'com.android.tools.build:gradle:3.0.0-beta1'

当我尝试 gradle 同步时,出现以下错误。

Failed to resolve: com.android.support:multidex:1.0.2 
Failed to resolve: com.android.support:multidex-instrumentation:1.0.2 

我检查了 ,它没有解决我的问题,因为我已经有了这个

    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.2multidex-instrumentation:1.0.2的依赖从哪里来的?我该如何解决这个问题?

首先您需要清理项目,然后重建它。

构建 ----> 清理项目

构建 ----> 重建项目

显然我的问题是我应该 post 这个:

maven {
    url 'https://maven.google.com'
}

allprojects 中而不是在 buildscript 中(细微的差异让我看不清问题所在),然后看起来像这样:

allprojects {
    repositories {
        maven {
            url 'https://maven.google.com'
        }
    }
}

感谢MD指点!

如果你在中国, 请使用

allprojects {
    respositories {
        google()
    }
}

改为

allprojects {
    respositories {
        maven {
            url 'https://maven.google.com'
        }
    }
}

不要问我为什么,我不想告诉你....可能'https://maven.google.com'被GFW选中了?

allprojects {
    repositories {
        google()
    }
}

为我工作而不是

allprojects {
    repositories {
        maven {
            url 'https://maven.google.com'
        }
    }
}

如果上述解决方案中的 none 有效,则添加 mavenLocal() :

allprojects {
    repositories {
        jcenter()
               maven {
            url 'https://maven.google.com'
        }

        mavenLocal()
        google()
    }
}

将所有 gradle 依赖项更新到最新版本.. 就这样

对我来说,解决方案是将 google() 项目向上移动以确保它在 jcenter()[=15= 之前].实际上,我会将 google() 放在所有存储库的第一位。

还需要添加以下内容:

compile 'com.android.support:multidex:1.0.3'

添加上述行后,除了上述答案外,它对我有用

在我的所有项目中添加 google() 解决了我的问题...

allprojects {
    repositories {
        jcenter()
        google()
    }
}

我的问题是网络连接。我需要连接到 vpn 服务器才能连接到 jcenter

向上移动 google() 项目以确保它在 jcenter() 之前。

repositories {
    jcenter()
    google()
}