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

时间:2017-08-17 15:32:31

标签: android maven android-studio gradle twitter-fabric

我有一个gradle思考问题我想要multidex 1.0.2所以我在顶级构建文件中设置了存储库并将其移出了buildscript(根据:Android Studio 3.0 Beta 1: Failed to resolve: com.android.support:multidex:1.0.2):

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

然而,Fabric似乎不喜欢这个。在我的项目(和库)的buildscript部分,我有:

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 :

如何解决此冲突?我如何指定结构,如果不是在所有项目中,哪里可以获得自己的依赖项?

2 个答案:

答案 0 :(得分:1)

  

错误:无法找到io.fabric.tools:gradle:1.+的任何匹配项,因为没有io.fabric.tools:gradle版本可用。

这是因为gradle只在jcenter repo中寻找插件。

要设置布料,您必须使用它:

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' }
}

它被项目中添加的依赖项使用。

答案 1 :(得分:0)

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

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