【问题标题】:Android Studio stuck on "Gradle: resolve dependencies '_debugCompile'" or 'detachedConfiguration1'Android Studio 卡在“Gradle:解决依赖项'_debugCompile'”或“detachedConfiguration1”
【发布时间】:2014-05-23 19:57:00
【问题描述】:

我不知道我在项目中做了什么更改,但是在构建 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')

    }
}

【问题讨论】:

  • 添加您的 build.gradle 文件。
  • 我遇到了这个问题。请看这个页面Solution

标签: android android-studio


【解决方案1】:

自从我切换到 Android Studio 后,我经常遇到这个问题。这确实是无法访问存储库的问题 - 可能是由于网络问题,或者更可能是由于任何原因导致存储库关闭。

我发现的最简单的解决方法是在 Android Studio 首选项中选择“脱机工作”模式。如果您需要添加新的依赖项,这将无济于事,但如果您已经添加了所有依赖项,则可以解决问题。

要启用此设置,请转到:

首选项 -> Gradle

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

盒子应该是这样的:

您可以定期取消选中此框以查看 repo 是否重新上线。

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

【讨论】:

  • 它对我有用.. 但是在设置离线标志之后.. 我们需要重新启动 Android Studio。
  • 嗨,我用的是android studio 2,偏好在哪里,我找不到:(
  • 这给出了另一个问题“无法解决 junit:junit:4.12”。
  • @Halo_HeroOfReach 在设置中使用搜索,这是查找设置的最快方式。否则低于;构建、执行、部署 -> BuildTools -> Gradle
【解决方案2】:

原来这一行:

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

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

有趣的问题:

  1. gradle 脚本如何在终端中正常工作? (虽然看起来比平时慢)。

  2. 为什么没有超时?它今天肯定长出了几根白毛……;)

【讨论】:

  • 不幸的是,这是我在可变网络条件下工作时发现的问题之一。这也恰好对 Android 开发造成了巨大的负面影响。
  • 我遇到了同样的问题。感谢分享。
  • 我遇到了同样的问题,我们在内部网络上有一个 Maven 存储库。不在内部网络上导致同步永远存在于detachedConfiguration1。连接到网络。重启Android Studio问题解决了。
【解决方案3】:

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

资源丢失。 HTTP GET

所以,将jcenter() 更改为mavenCentral() 中的MyProject/build.gradle 就成功了。

希望对你有帮助。

【讨论】:

  • 如果你的电脑有gradle或者Android Studio里面有更好的,你可以打开一个终端窗口,你可以在Android Studio屏幕下方的标签中选择终端
【解决方案4】:

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

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>

【讨论】:

  • 登录只是为了给你点赞,这一切都解决了!
【解决方案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

我发现为gradlw 命令启用debuginfo 选项存在问题,我在项目的根目录上运行它:

首先使用这个命令:

./gradlew --info --debug 

接下来使用这个命令:

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

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

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)

【讨论】:

    【解决方案6】:

    在浏览器中检查http://bintray.com (jcenter) 或http://maven.org (mavenCentral),并根据可用站点更改build.gradle 中的repositories 设置。

    【讨论】:

      【解决方案7】:

      如果您使用的是代理服务器,那么您可能需要为您的代理设置 JVM 参数。

      设置 -> Gradle -> Gradle VM 选项:-Dhttp.proxyHost=1.2.3.4 -Dhttp.proxyPort=8080 设置 -> 编译器 -> 虚拟机选项:-Dhttp.proxyHost=1.2.3.4 -Dhttp.proxyPort=8080

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

      【讨论】:

      【解决方案8】:

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

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

      【讨论】:

        【解决方案9】:

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

        【讨论】:

          【解决方案10】:

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

          我是这样解决的:

          第 1 步

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

          例如,它可能看起来像这样:

          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 构建成功。

          第三步

          搜索其他工件版本。

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

          我在build.gradle 中尝试了2.2.21Gradle 构建现在可以工作了!!

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

          其他参考资料

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-02-23
            • 1970-01-01
            • 1970-01-01
            • 2015-05-01
            • 2016-09-03
            • 1970-01-01
            • 1970-01-01
            • 2015-01-25
            相关资源
            最近更新 更多