Android Studio 3.0 Beta 1:无法解析:com.android.support :multidex:1.0.2

时间:2017-08-10 08:30:16

标签: android gradle android-gradle build.gradle android-multidex

从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.2multidex-instrumentation:1.0.2的依赖关系来自哪里?我怎么能解决这个问题?

11 个答案:

答案 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