如何在build.gradle中包含多个存储库?

Android Studio不会让我build立这个。 它说com.mixpanel.blahblahblah没有find。 com.mixpanel.blahblahblah来自mavenCentral()我知道问题是因为它不承认mavenCentral(),因为它只承认其他回购。 我怎样才能包括这两个项目,并使这个项目工作?

apply plugin: 'com.android.application' apply plugin: 'crashlytics' buildscript { repositories { maven { url 'http://download.crashlytics.com/maven' } } dependencies { classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+' } } repositories { maven { url 'http://download.crashlytics.com/maven' } mavenCentral() } android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "co.dilmile.dilmile" minSdkVersion 9 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.parse.bolts:bolts-android:1.1.2' compile 'com.loopj.android:android-async-http:1.4.6' compile 'com.google.code.gson:gson:2.3.1' compile 'com.facebook.android:facebook-android-sdk:3.20.0' compile 'com.android.support:support-v4:21.0.3' compile 'org.roboguice:roboguice:3.+' compile 'com.google.code.findbugs:jsr305:1.3.9' provided 'org.roboguice:roboblender:3.+' compile 'com.crashlytics.android:crashlytics:1.+' compile 'com.mixpanel.android:mixpanel-android:4.5.3' } 

Solutions Collecting From Web of "如何在build.gradle中包含多个存储库?"

我想你应该添加maven中心到你的buildscript仓库。 我有这样的工作没有问题:

 buildscript { repositories { mavenCentral() maven { url 'http://download.crashlytics.com/maven' } } ... } allprojects { repositories { mavenCentral() maven { url 'http://download.crashlytics.com/maven' } } } 

编辑:我相信你的gradle文件应该是

 apply plugin: 'com.android.application' apply plugin: 'crashlytics' buildscript { repositories { maven { url 'http://download.crashlytics.com/maven' } mavenCentral() } dependencies { classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+' } } repositories { maven { url 'http://download.crashlytics.com/maven' } mavenCentral() } android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "co.dilmile.dilmile" minSdkVersion 9 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.parse.bolts:bolts-android:1.1.2' compile 'com.loopj.android:android-async-http:1.4.6' compile 'com.google.code.gson:gson:2.3.1' compile 'com.facebook.android:facebook-android-sdk:3.20.0' compile 'com.android.support:support-v4:21.0.3' compile 'org.roboguice:roboguice:3.+' compile 'com.google.code.findbugs:jsr305:1.3.9' provided 'org.roboguice:roboblender:3.+' compile 'com.crashlytics.android:crashlytics:1.+' compile 'com.mixpanel.android:mixpanel-android:4.5.3' } 

从现在开始,Android Studio使用jcenter而不是maven,您应该通过将mavenCentral更改为jcenter来迁移存储库

 buildscript { repositories { //old //mavenCentral() //new jcenter() maven { url 'http://download.crashlytics.com/maven' } } ... } allprojects { repositories { //old //mavenCentral() //new jcenter() maven { url 'http://download.crashlytics.com/maven' } } } 

jcenter比mavenCentral更完整更快

jcenter将镜像mavenCentral存储库,所以如果遇到mavenCentral的问题,可以使用jcenter。

并且尽量避免使用+来声明依赖的版本号。 这也可能是问题。

我最近写了一个依赖pipe理工具来找出哪个依赖已经过时,你可以试试看。

https://github.com/Jintin/andle