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

Ely*_*lye 37 android gradle build.gradle android-gradle-plugin android-multidex

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

当我尝试gradle sync时,它会在下面显示错误.

Failed to resolve: com.android.support:multidex:1.0.2 
Failed to resolve: com.android.support:multidex-instrumentation:1.0.2 
Run Code Online (Sandbox Code Playgroud)

我检查Android Studio 3.0 Canary 9 - 无法解析包,它不能解决我的问题,因为我已经有了这个

    maven {
        url 'https://maven.google.com'
    }
Run Code Online (Sandbox Code Playgroud)

我很惊讶它甚至要求multidex 1.0.2,因为我只在build.gradle中

compile 'com.android.support:multidex:1.0.1'
Run Code Online (Sandbox Code Playgroud)

我检查使用./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
Run Code Online (Sandbox Code Playgroud)

哪儿来的依赖multidex:1.0.2,并multidex-instrumentation:1.0.2从何而来?我怎么能解决这个问题?

Ely*_*lye 94

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

maven {
    url 'https://maven.google.com'
}
Run Code Online (Sandbox Code Playgroud)

in allprojectsand not in buildscript(微妙的不同使我在问题所在的地方失明),然后看起来像这样:

allprojects {
    repositories {
        maven {
            url 'https://maven.google.com'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

感谢MD的指针!

  • 它也适用,而不是"url'http ...."你简单地使用:"google()" (4认同)
  • 是的 转到root build.gralde并确保将google()添加到allProjects {}而不是buildscript {}。只是有同样的问题。 (2认同)
  • 还有问题.这个解决方案不适合我. (2认同)

bla*_*ade 22

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


UVM*_*UVM 10

还需要添加以下内容:

编译'com.android.support:multidex:1.0.3'

添加上述内容后,除上述答案外,它对我有用


Mil*_*avi 6

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

建立---->清洁项目

建立---->重建项目


Rah*_*ari 6

allprojects {
    repositories {
        google()
    }
}
Run Code Online (Sandbox Code Playgroud)

为我工作而不是

allprojects {
    repositories {
        maven {
            url 'https://maven.google.com'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

如果你在中国,请使用

allprojects {
    respositories {
        google()
    }
}
Run Code Online (Sandbox Code Playgroud)

相反

allprojects {
    respositories {
        maven {
            url 'https://maven.google.com'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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