安卓开发工具Android Studio - Gradle无法解析依赖

5

我在我的系统中安装了Android Studio版本2.1.2,如果我在Gradle文件中添加任何依赖项,则会出现“无法解决错误”的错误。

It happen the all the libraries likes Picasso not only for Junit

所以我尝试在 gradle.properties 文件中添加代理设置

systemProp.http.proxyHost=http://xxxx/xxx
systemProp.http.proxyPort=80
systemProp.https.proxyHost=http://xxxx/xxx
systemProp.https.proxyPort=80

但是我遇到了以下错误:
Error:A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
   > Could not resolve junit:junit:4.12.
     Required by:
         MyApplication2:app:unspecified
      > Could not resolve junit:junit:4.12.
         > Could not get resource 'https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.pom'.
            > Could not GET 'https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.pom'.
               > http://xxxx/xxx

请帮助解决此问题。

build.gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "com.example.muraliathmarao.myapplication"
        minSdkVersion 15
        targetSdkVersion 23
        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 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
}

你能发布你的build.gradle吗? - nshmura
我猜你一定是在防火墙后面(比如Zscaler)。如果是这样,那么你需要在Java中导入cacert(SSL证书),并重新启动Android Studio。如果有帮助的话,请查看此链接:http://javarevisited.blogspot.in/2012/03/add-list-certficates-java-keystore.html。 - dudego
@M.A.Murali 谢谢。我在 build.gradle 中找不到问题。 你能用 curl 获取 pom 文件吗?像这样: curl --head https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.pom - nshmura
在构建项目时,您是否连接到互联网? - Ali Bdeir
请在您的项目级别gradle部分中添加以下内容:task clean(type: Delete) { delete rootProject.buildDir } - IntelliJ Amiya
显示剩余3条评论
7个回答

4
你需要在主 build.gradle 的末尾添加一个名为 allprojects 的部分,用于定义项目模块的仓库。请按照格式要求进行修改。
allprojects {
repositories {
    jcenter()
  }
}

以下是 build.gradle (project) 文件的内容:

buildscript {
 repositories {
    jcenter()
    mavenCentral()
  }

  dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
       // NOTE: Do not place your application dependencies here; they belong
       // in the individual module build.gradle files
   }
 }

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

添加这个并检查它的repositories { mavenCentral() } - Nikhil PV
在你的 build.gradle 的 dependencies 部分添加以下内容:将 'compile 'com.squareup.picasso:picasso:2.5.2'' 替换为 'compile 'com.squareup.picasso:picasso:2.5.1'' - Nikhil PV
在两个存储库位置? - M.A.Murali
是的,buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.1.0' // 注意:不要在此处放置应用程序依赖项;它们属于 // 在各个模块 build.gradle 文件中 } }allprojects { repositories { jcenter() mavenCentral() } } - Nikhil PV
让我们在聊天中继续这个讨论 - Nikhil PV

2

您应该更新Android存储库,步骤如下:
1.打开SDK管理器
2.选择Android支持存储库
3.安装相关软件包


1
我处于封闭网络中,无法下载Gradle库。
如果您在完全封闭的网络中(根本没有互联网访问),则通常会在本地网络中设置一个中央内部依赖库,所有内部用户都可以从中获取依赖项。此本地仓库需要复制您从外部站点/仓库下载的所有内容。例如,您必须从某个地方获取您的Android Studio安装和Android SDK依赖项。此外,Android SDK定期接收更新 - 当您运行Android SDK管理器时,是否看到更新?
即使您是唯一的开发人员,建立自己的本地Maven仓库也可能很有用,以保留所有依赖项 - 这需要从您正在构建的计算机上访问(可能只需在开发机器上)。请参见https://maven.apache.org/guides/introduction/introduction-to-repositories.html#Internal_Repositories。然后,您需要使用所需的依赖项将其添加到本地存储库中 - 当然,您如何将任何类型的外部文件放入封闭网络中(例如,首先像Android Studio或Android SDK依赖项)将取决于您如何执行此操作。

1
请检查build.gradle中的“buildToolsVersion”。请确保您的sdk文件已经更新。否则,请将build.gradle文件中的buildToolVersion从当前版本“24.0.0”更改为“23.0.1”或更低版本。

1

可能会有以下任何一种问题:

  1. 首先,通过您的浏览器检查存储库链接是否可访问。 (如果无法访问链接,请联系您的网络基础设施团队)

  2. 如果在浏览器中可以访问链接,则问题出在您的Gradle配置上。确保您的根Gradle文件中具有以下条目。

buildscript {
      repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'>     
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    } 
} 

allprojects {
    repositories {
        jcenter()
    } 
}

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

对我很有帮助。google() 是关键改进,因为所需的依赖项在 Google 存储库中。


-1

它没能工作是因为我在封闭网络中,它不允许下载Gradle库,我正在使用jar文件。


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