Android Studio停留在“Gradle:解析依赖关系'_debugCompile'”或'detachedConfiguration1'

时间:2014-05-23 19:57:01

标签: android android-studio

我不知道我在项目中改变了什么,但在构建gradle脚本时突然无法通过这一步。

使用'gradle assemble'构建它是没有问题的。

编辑:之前的卡点是解析依赖'detachedConfiguration1'。 (在第一次失败的_debugCompile尝试之后,我回到了detachedConfiguration1)。 我想这是太多的依赖项目?我所拥有的一些示例项目在Studio中导入得很好.... 我重新安装了Android Studio并删除了所有设置和首选项。

每次开始这样做时我都要杀了它。

敲响任何铃声?

import com.android.build.gradle.AppPlugin
import com.android.build.gradle.LibraryPlugin

// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript {
repositories {
    mavenCentral()
}

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

apply plugin: 'android'

repositories {
    maven { url 'http://ksoap2-android.googlecode.com/svn/m2-repo' }

    mavenCentral()
}

dependencies {

    compile 'com.google.code.ksoap2-android:ksoap2-android:2.5.2'
    compile 'com.android.support:support-v4:18.0.+'
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':lib-projects:StickyListHeaders')
    compile project(':lib-projects:ActionBar-PullToRefresh')
    compile project(':lib-projects:facebook')
    compile project(':lib-projects:Mopub:mopub-sdk')
    compile project(':lib-projects:NineOldAndroids')
    compile project(':lib-projects:ActionBarSherlock:actionbarsherlock')
    compile project(':lib-projects:ActionBarSherlock:actionbarsherlock-i18n')
    compile project(':lib-projects:SmoothProgressBar')
    compile project(':lib-projects:android-viewflow-master:viewflow')
}

android {

    signingConfigs {

        debug {
            storeFile file('....')
        }
    }

    compileSdkVersion 19
    buildToolsVersion "19.0.3"
    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')

    }
}

10 个答案:

答案 0 :(得分:56)

自从我切换到Android Studio以来,我经常遇到这个问题。这确实是存储库无法访问的问题 - 无论是由于网络问题,还是由于某种原因,存储库更可能被关闭。

我发现最简单的解决方法是在Android Studio偏好设置中选择“离线工作”模式。如果你需要添加一个新的依赖项,这没有用,但是如果你已经添加了所有的依赖项,它就可以解决问题。

要启用此设置,请转到:

  

偏好设置 - &gt;摇篮

在右侧选项中,转到“全局Gradel设置”并选中“离线工作”框。

该框应如下所示:

enter image description here

您可以定期取消选中此框以查看回购是否重新联机。

注意:此选项相当于在从命令行运行gradle构建时设置--offline标志。

答案 1 :(得分:19)

事实证明这一行:

repositories {     
  maven {     
    url 'http://ksoap2-android.googlecode.com/svn/m2-repo'    
  }

全权负责永久卡住的Android工作室。可能存储库今天没有活动/离线...

有趣的问题:

  1. 为什么gradle脚本在终端中运行得很好? (虽然它看起来比平常慢)。

  2. 为什么没有超时?它今天肯定会产生一些白发..;)

答案 2 :(得分:14)

请使用-info从命令行(在项目文件夹中打开终端)运行gradle并检查停止的位置。我遇到了类似的东西,它与jcenter()有关,因为它无法访问资源:

资源缺失。 HTTP GET

所以,在jcenter()中按mavenCentral()更改MyProject/build.gradle就可以了。

我希望它可以提供帮助。

答案 3 :(得分:12)

我遇到了同样的问题,并通过在gradle.properties文件中添加http和https代理来解决它。在使用https读取gradle-2.10-all.zip时添加https代理非常重要:

https://services.gradle.org/distributions/gradle-2.10-all.zip

gradle.properties:

systemProp.http.proxyHost=<http proxy name>
systemProp.http.proxyPort=<http proxy port>
systemProp.https.proxyHost=<https proxy name>
systemProp.https.proxyPort=<https proxy port>

答案 4 :(得分:5)

Debian上,

我遇到了同样的问题,通过两次更改修复了我,

首先在gradle.properties文件上为httphttps启用gradle代理:

systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=8080

接下来安装lib32stdc++6lib32z1软件包:

$ sudo apt-get install lib32stdc++6 lib32z1

我发现我的问题是为debug命令启用infogradlw选项,我在项目的根目录上运行它:

首先使用此命令:

./gradlew --info --debug 

然后使用此命令:

./gradlew --info --debug :app:generateDebugSources

输出调试(在Android Gui上,此部分再次运行并在后台运行agian而不知道错误消息):

23:25:45.419 [ERROR] [system.err] Exception in thread "png-cruncher_10" java.lang.RuntimeException: Timed out while waiting for slave aapt process, make sure the aapt execute at /local/path/to/Android/sdk/build-tools/22.0.1/aapt can run successfully (some anti-virus may block it) or try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds
23:25:45.419 [ERROR] [system.err]   at com.android.builder.png.AaptProcess.waitForReady(AaptProcess.java:108)
23:25:45.419 [ERROR] [system.err]   at com.android.builder.png.QueuedCruncher$1.creation(QueuedCruncher.java:110)
23:25:45.419 [ERROR] [system.err]   at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:203)
23:25:45.419 [ERROR] [system.err]   at java.lang.Thread.run(Thread.java:745)

答案 5 :(得分:4)

从浏览器中检查http://bintray.comjcenter)或http://maven.orgmavenCentral),然后根据可用内容更改repositories中的build.gradle设置站点。

答案 6 :(得分:3)

如果您使用代理服务器,则可能必须为代理设置JVM参数。

设置 - &gt; Gradle - &gt; Gradle VM选项:-Dhttp.proxyHost = 1.2.3.4 -Dhttp.proxyPort = 8080 设置 - &gt;编译器 - &gt; VM选项:-Dhttp.proxyHost = 1.2.3.4 -Dhttp.proxyPort = 8080

我必须重新启动IDE才能使这些设置生效。

答案 7 :(得分:0)

我通过在工作项目中复制Gradle设置并将它们粘贴到错误的build.gradle文件中来修复我的。

答案 8 :(得分:0)

我今天遇到了类似的问题,在我的情况下,我发现这是因为我的一个外部依赖项很难从互联网上拔出来。

以下是我如何解决它:

第1步

检查应用中dependencies个文件中的build.gradle(或库模块,根据问题发生的位置)。

例如,它可能如下所示:

dependencies {
    ...
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.amazonaws:aws-android-sdk-iot:2.2.20'
}

第2步

猜猜哪些可能是根本原因(即看起来更难拉的那个)。

在我的情况下,我认为'com.amazonaws:aws-android-sdk-iot:2.2.20'看起来很可疑,所以我将其评论出来,然后再次尝试构建Gradle。这一次,Gradle构建成功。

第3步

搜索其他工件版本。

就我而言,我搜查了一下 https://bintray.com/bintray/jcenter/com.amazonaws%3Aaws-android-sdk-iot 并且发现2.2.212.2.22也可用(目前)。

我在2.2.21中尝试了build.gradle,Gradle版本现在正在使用!!

dependencies {
    ...
    compile 'com.amazonaws:aws-android-sdk-iot:2.2.21'
}

其他参考资料

要了解有关Gradle中外部依赖项的更多信息,请查看以下网站:

答案 9 :(得分:0)

仅提供我的经验,以防其他人遇到以下情况。

对我来说问题是我的一个存储库是在我的公司网络而不是公共网络上托管的。在VPN'之后,我能够“解决依赖性。”

相关问题