7

我有一个只有两个依赖项的项目,相对标准的appcompat-v7ion. 所以我的 gradle 文件非常简单:

项目

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

应用程序

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"

    defaultConfig {
        applicationId "zz.yy.xx"
        minSdkVersion 18
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.koushikdutta.ion:ion:2.1.6'
}

事实上,我认为我自己添加的唯一内容就是ion依赖项。

我不是 gradle 大师,但我在多个地方读到jcenter是mavenCentral 的所谓超集。具体这个答案

JCenter 本身是 Maven Central 之上的薄薄的一层。它代理它(或多或少成功)并添加其他组件。两者都托管在 CDN 网络上并且具有高性能。Maven Central 本身是所有 Eclipse、Apache 和大多数其他开源项目的目标,如果没有它,JCenter 将大部分是空的。

这个

你永远不需要两者。JCenter 是 Maven Central 的超集,它应该足以满足所有依赖项。

我在 Bintray 和 [artifactory] ​​背后的公司 JFrog 工作,有关详细信息和链接,请参阅我的个人资料。

让我相信它们在提供软件包方面基本相同,只有 jcenter 在某些方面更好。尤其是后者答案的发布者似乎知道他在说什么。

但是,我无法使用 jcenter 引入离子依赖性。我总是收到这个错误

在此处输入图像描述

为了让它工作,我还需要添加 mavenCentral。所以上面的gradle片段不起作用,但如果我改成allprojects这个

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}

它神奇地开始工作。

这怎么可能?我已经验证两者都提供包:

摇篮设置

在此处输入图像描述

我尝试了本地包装器但没有成功。

安卓工作室 1.3.2
Gradle 1.3.0

4

0 回答 0