Gradle在Android Studio中无法解析依赖项。

27

每当我在Android Studio 1.1 (OS X)中从远程仓库(jcenter)添加依赖时,同步Gradle时会出现以下错误:

Error:(26, 13) Failed to resolve: <packagename:version>

我的应用程序的build.gradle文件如下:

apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "nl.timmevandermeer.cargoapp"
    minSdkVersion 19
    targetSdkVersion 21
    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:21.0.3'
     compile 'com.android.support:support-v4:21.0.3'
     compile 'com.google.android.gms:play-services:6.5.87'
     compile 'org.json:json:20141113'
}

我已经尝试更改仓库(jcenter(),mavenCentral()等),重新安装Android Studio、JDK(7和8),更改Gradle版本和Android SDK版本,但都没有起作用。运行./gradlew build时,我遇到了以下问题:

Could not resolve com.android.tools.build:gradle:1.1.0.
13:48:04.914 [ERROR] [org.gradle.BuildExceptionReporter]      Required by:
13:48:04.915 [ERROR] [org.gradle.BuildExceptionReporter]          :CargoApp:unspecified
13:48:04.932 [ERROR] [org.gradle.BuildExceptionReporter] >
 org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V

我在其他情况下也遇到了这个错误,例如尝试使用Intellij Idea而不是Android Studio时。不过,如果没有这个依赖项,运行应用程序是可以工作的。


尝试删除.gradle文件夹,然后再次运行./gradlew assembleDebug - hoomi
在Gradle脚本中,你的项目有build.gradle(Project: Name Project..)build.gradle(Modulo: app)吗? - Anderson K
@hoomi 谢谢,但是对我没用。 - Timme van der Meer
@anderson_acs 是的,我的项目build.gradle文件如下:// 顶层构建文件,在此处可以添加所有子项目/模块共有的配置选项。 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.1.0' // 注意:不要在此处放置应用程序依赖项;它们属于各个模块的build.gradle文件中。 } } allprojects { repositories { jcenter() } } - Timme van der Meer
@TimmevanderMeer 这个事情的进度如何? - Jared Burrows
@JaredBurrows 正如我在下面提到的,我通过重新安装操作系统解决了这个问题。仍然不确定是什么原因导致的。 - Timme van der Meer
10个回答

27

这里有一个类似的问题,当我选择"Build -> Clean Project"时,出现了一个"peer not authenticated"错误。

通过使用"http://jcenter.bintray.com/"代替"https://jcenter.bintray.com/"来解决问题。

repositories {
    jcenter({url "http://jcenter.bintray.com/"})
}

希望这对你有用。


我无法验证,因为重新安装操作系统解决了问题。尽管我尝试了类似的解决方案,但都没有成功。 - Timme van der Meer
它在我的项目中运行良好。所以+1。但是在我的库模块中不行。 - Anbarasu Chinna

15

我在GitHub上遇到了类似的问题,该库的安装说明如下:

dependencies {
    compile 'com.github.chrisbanes.photoview:library:1.2.4'
}

这种解决方法似乎有效,虽然它不是最佳选择,因为它没有获取特定版本并会导致Android Studio警告:

dependencies {
    compile 'com.github.chrisbanes.photoview:library:+'
}

2
我应该强调使用“+”注释可能会导致微妙的错误,正如Android Studio所警告的那样。例如,在我使用上述库的经验中,它导致编译器选择了一个较旧的库版本,该版本尚不支持某个功能,但该功能在项目的自述文件中有记录。最好从项目所有者或其他人那里了解适合您情况的特定版本。 - kip2
如果有人在使用这个库时遇到类似的问题,请确保添加jitpack引用。 - Prof

5
在我的情况下,问题出在我在 package 的 build.gradle 文件中声明 jitpack 时,将它放在了 buildscript.repositories 而不是 allprojects.repositories 中。
因此应该是:allprojects.repositories
buildscript {
    repositories {
        ...
        maven {
            url "https://jitpack.io"
        }
    }
}

它应该在这里:

allprojects {
    repositories {
        ...
        maven {
            url "https://jitpack.io"
        }
    }
}

settings.gradle - Ray Rojas

4

当我在我的build.gradle(Module Level)文件中添加了这个依赖com.droidninja:filepicker:2.2.5,我得到了这个错误信息:

Failed to resolve: com.droidninja:filepicker:2.2.5

Error message image

接着我在settings.gradle中添加了gradlePluginPortal()

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        // Add this line
        gradlePluginPortal()
    }
}

对我来说有效。 解决错误的图片


3

我身处公司防火墙之后。 我已经设置了我的http设置,但是没有设置https设置。 因此,我在gradle.properties文件中添加了以下内容:

systemProp.https.proxyPassword=...
systemProp.https.proxyHost=...
systemProp.https.nonProxyHosts=...
systemProp.https.proxyUser=...
systemProp.https.proxyPort=...

对我来说,使用的密码已经过时了。一旦在“文件>设置>外观和行为>系统设置>HTTP代理”中更新了密码,我的依赖项就会解决并下载。 - Ashok

3

可能您的Gradle处于离线模式。请按照以下步骤操作:进入 File->Settings->Gradle,取消勾选离线模式,然后尝试刷新Gradle即可。


2

最佳build.gradle文件:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.3'
    }
}

App build.gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "nl.timmevandermeer.cargoapp"
        minSdkVersion 19
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
     // compile fileTree(dir: 'libs', include: ['*.jar']) // <-- use gradle depedencies
     compile 'com.android.support:appcompat-v7:22.0.0' // <-- brings in v4
    // compile 'com.google.android.gms:play-services:7.0.0' // <-- will cause MultiDex exception, you need to choose which ones you want
    // compile 'org.json:json:20141113' // <-- android comes with org.json
}

多Dex问题:

compile 'com.google.android.gms:play-services:7.0.0'太大了,不应该直接使用。请在这里选择您想要的模块:http://developer.android.com/google/play-services/setup.html


这对我来说没有起作用。基本上在任何项目、新或现有的,以及任何库中都出现了问题。我重新安装了操作系统,问题得以解决,但问题的根源仍然未知。 - Timme van der Meer
那根本就没有意义。一定有什么问题。 - Jared Burrows
有没有办法覆盖Android自带的org.json?它比最新版本的org.json多使用23%的内存。 - Rafael Sanches
23%更多的内存?什么? - Jared Burrows

2
我有类似的问题 -> 错误:无法解析:
通过使用 maven { url 'https://jitpack.io' } 代替 maven {url 'https://maven.google.com/'} 解决了该问题。
我已在项目级别的 build.gradle 中添加了它。
allprojects {
  repositories {
    maven { url 'https://jitpack.io' }
  }
}

它工作得很好。


0

在Ubuntu 14.04中进行了测试,

>delete .androidstudio1.2 , .gradle , .android  , Android studio project from home directory 
> Launch using studio.sh
>close the dialogue letting you choose new or old setting , just close it using that "x " button 
> then it will set up an virtual nexus 5 
>then there will be two errors saying problem about "sdk" and "gradle "
> Caution : choose the appropriate sdk version by clicking on the link given by where the problem is shown .
> close android studio 
> reopen android studio 
> then you will be thrown a possible  error with jdk not found .
>go to file -> project structure 
> give the path to jdk , in my case its "usr/local/java/jdk..."
>close android studio and open again , the gradle might work well after this .

0
在我的情况下,我将以下内容添加到我的 build.gradle (module:app) 文件中:
compile 'com.github.glomadrian:velocimeterlibrary:1.1@aar' 

然而,今天它给了我一个错误。我的解决方案是使用这个代替:

compile 'com.github.glomadrian:velocimeterlibrary:+'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接