"无法解析所有依赖"与第三方库(Maven的从中央) [英] "Could not resolve all dependencies" with 3rd party libs (from Maven Central)

查看:561
本文介绍了"无法解析所有依赖"与第三方库(Maven的从中央)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的的build.gradle ,我定义一些第三方库,所有这一切都在Maven的中央是可用的。

  {相关性
    编译com.google code.gson:GSON:2.2.4
    编译com.google.guava:番石榴:15.0'
    编译com.netflix.rxjava:rxjava核心:0.14.2
    编译com.netflix.rxjava:rxjava-机器人:0.14.2
}

(我们还手工管理下的罐子(Eclipse的用户),和我以前用的
为构建摇篮也与编译文件树(导演:'库',包括:的* .jar'),但我想从客场走向简单,自动化依赖管理。)

无论如何,由于某种原因撷取DEPS失败:

  *出了什么问题:
发生问题的根源配置项目MyApp的-Android的。
>无法解析配置所有的依赖:_debugCompile。
   >找不到com.google code.gson:GSON:2.2.4。
     要求:
         :MyApp的-的Andr​​oid:未指定
   >找不到com.google.guava:番石榴:15.0。
     要求:
         :MyApp的-的Andr​​oid:未指定
   >找不到com.netflix.rxjava:rxjava核心:0.14.2。
     要求:
         :MyApp的-的Andr​​oid:未指定
   >找不到com.netflix.rxjava:rxjava-机器人:0.14.2。
     要求:
         :MyApp的-的Andr​​oid:未指定

我是什么做错了吗?

我不知道是否我应该有

  {库
    mavenCentral()
}

...也对构建文件的顶层(不只是在 buildscript ),但补充说,没有帮助。

分辨率

我太草率;该确实帮,带无法解析的依赖。从那以后,我得到了编译错误,但是这比四项是由于实际上有在code一些dependendies(在)的 dependendies 。

所以在我的情况下,我不得不添加顶级指向Mav​​en的中央以及一些额外的,我们其实是有dependiencies:

 编译com.squareup.okhttp:okhttp:1.2.1
编译com.android.support:support-v4:13.0.0
编译com.android.support:support-v13:13.0.0


本(原件,碎)全的build.gradle

  buildscript {
    库{
        mavenCentral()
    }
    依赖{
        类路径'com.android.tools.build:gradle:0.7.1
    }
}
应用插件:'机器人'依赖{
    //编译文件树(导演:'库',包括:的* .jar)
    编译com.google code.gson:GSON:2.2.4
    编译com.google.guava:番石榴:15.0'
    编译com.netflix.rxjava:rxjava核心:0.14.2
    编译com.netflix.rxjava:rxjava-机器人:0.14.2
}安卓{
    compileSdkVersion 19
    buildToolsVersion19    defaultConfig {
        14的minSdkVersion
        targetSdkVersion 19
    }    sourceSets {
        主要{
            manifest.srcFile'的Andr​​oidManifest.xml
            java.srcDirs = ['src'中]
            resources.srcDirs = ['src'中]
            aidl.srcDirs = ['src'中]
            renderscript.srcDirs = ['src'中]
            res.srcDirs = ['水库']
            assets.srcDirs = ['资产']
        }        //移动测试,测试/ JAVA,测试/ RES等...
        instrumentTest.setRoot(测试)        //移动构建类型构建类型/<&型GT;
        //例如,建立类型/调试/ JAVA,内置类型/调试/ AndroidManifest.xml中,...
        //这个动作出来在src / LT他们默认位置和的;类型> / ...这将
        //与SRC /冲突正在使用的主要来源集。
        //添加新的构建类型或产品的口味应该陪同
        //通过类似定制。
        debug.setRoot(集结类型/调试)
        release.setRoot(集结类型/释放)
    }}


解决方案

事实上,你需要添加

  {库
    mavenCentral()
}

在顶层的的build.gradle 来指定要搜索的相关性。

In my build.gradle, I define some 3rd party libs, all of which are available in Maven Central.

dependencies {    
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.google.guava:guava:15.0'
    compile 'com.netflix.rxjava:rxjava-core:0.14.2'
    compile 'com.netflix.rxjava:rxjava-android:0.14.2'
}

(We also have manually managed jars under libs (for Eclipse users), and I used to use those for Gradle builds too, with compile fileTree(dir: 'libs', include: '*.jar'), but I'm trying to move away from that towards simpler, automated dependency management.)

Anyway, for some reason fetching the deps fails:

* What went wrong:
A problem occurred configuring root project 'MyApp-Android'.
> Could not resolve all dependencies for configuration ':_debugCompile'.
   > Could not find com.google.code.gson:gson:2.2.4.
     Required by:
         :MyApp-Android:unspecified
   > Could not find com.google.guava:guava:15.0.
     Required by:
         :MyApp-Android:unspecified
   > Could not find com.netflix.rxjava:rxjava-core:0.14.2.
     Required by:
         :MyApp-Android:unspecified
   > Could not find com.netflix.rxjava:rxjava-android:0.14.2.
     Required by:
         :MyApp-Android:unspecified

What am I doing wrong?

I was wondering if I should have

repositories {
    mavenCentral()
}

...also on the top level of the build file (not just inside buildscript), but adding that didn't help.

Resolution

I was too hasty; that did help with "Could not resolve dependencies". After that I got compilation errors, but that was due to in fact having some more dependendies in the code (and in libs) than the four entries in dependendies above.

So in my case I had to add the top-level repositories pointing to Maven Central plus some additional dependiencies that we actually had:

compile 'com.squareup.okhttp:okhttp:1.2.1'   
compile 'com.android.support:support-v4:13.0.0'
compile 'com.android.support:support-v13:13.0.0'


The (original, broken) full build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.1'
    }
}
apply plugin: 'android'

dependencies {
    // compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.google.guava:guava:15.0'
    compile 'com.netflix.rxjava:rxjava-core:0.14.2'
    compile 'com.netflix.rxjava:rxjava-android:0.14.2'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }

}

解决方案

Indeed you need to add a

repositories {
    mavenCentral()
}

at the top level of your build.gradle to specify where to search for your dependencies.

这篇关于&QUOT;无法解析所有依赖&QUOT;与第三方库(Maven的从中央)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆