allprojects 存储库设置和 Fabric 之间的冲突

Conflict between allprojects repository setting and Fabric

我有一个问题 gradle 认为我想要 multidex 1.0.2 所以我在顶级构建文件中设置存储库并将其移出构建脚本(根据:) :

allprojects {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }
}

但是,Fabric 似乎不喜欢这样。在我的项目(和库)的构建脚本部分,我有:

buildscript {
    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

现在我得到:

Error:Could not find any matches for io.fabric.tools:gradle:1.+ as no versions of io.fabric.tools:gradle are available.
Searched in the following locations:
    file:/Applications/Android Studio 3.0 Preview.app/Contents/gradle/m2repository/io/fabric/tools/gradle/maven-metadata.xml
    file:/Applications/Android Studio 3.0 Preview.app/Contents/gradle/m2repository/io/fabric/tools/gradle/
    https://jcenter.bintray.com/io/fabric/tools/gradle/maven-metadata.xml
    https://jcenter.bintray.com/io/fabric/tools/gradle/
Required by:
    project :

我该如何解决这个冲突?如果不是在所有项目中,我如何指定 fabric 从哪里获取它自己的依赖项?

Error:Could not find any matches for io.fabric.tools:gradle:1.+ as no versions of io.fabric.tools:gradle are available.

这是因为 gradle 仅在 jcenter 存储库中寻找插件。

要设置结构,您必须使用它:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}

gradle 插件需要它。

那你还要加上:

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

被项目中添加的依赖使用

一位同事在应用的 build.gradle 文件中通过以下声明设法解决了该问题:

repositories {
    mavenCentral()
    maven { url 'https://maven.fabric.io/public' }
    maven { url 'https://maven.google.com' }
}