Android Studio卡在“Gradle:解决依赖关系_debugCompile”或“detachedConfiguration1”
我不知道我在项目中改变了什么,但是在构buildgradle脚本时突然无法完成这一步。
用“gradle汇编”构build它没有任何问题。
编辑:以前的卡住点是解决依赖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') } }
自从我切换到Android Studio以来,我经常遇到这个问题。 这确实是一个问题,因为存储库不能访问 – 无论是由于networking问题还是由于任何原因更有可能导致回购。
我find的最简单的解决方法是在Android Studio偏好设置中select“工作离线”模式。 如果你需要添加一个新的依赖关系,这并没有什么帮助,但是如果你已经添加了所有的依赖关系,那么这个技巧就行了。
要启用此设置,请转到:
首选项 – > Gradle
在右侧选项中select“Global Gradel Settings”,然后选中“Offline work”框。
该框应该看起来像:
您可以定期取消选中此框以查看回购是否恢复在线状态。
注意 :这个选项相当于从命令行运行gradle build时设置–offline标志。
事实certificate,这条线:
repositories { maven { url 'http://ksoap2-android.googlecode.com/svn/m2-repo' }
是唯一负责永久卡住的Android工作室。 可能是版本库今天没有活动/脱机…
有趣的问题:
-
terminal上的gradle脚本怎么运行得很好? (尽pipe看起来比平时慢)。
-
怎么没有这个时间? 它今天确实创造了一些白发…;)
请使用-info从命令行运行gradle(在您的项目文件夹中打开一个terminal),并检查停止的地方。 我遇到类似的东西,它与jcenter()有关,因为它无法访问资源:
资源缺失。 HTTP GET
所以,在MyProject/build.gradle
通过mavenCentral()
来更改jcenter()
mavenCentral()
MyProject/build.gradle
这个function。
我希望它可以帮助。
我遇到了同样的问题,并通过在gradle.properties文件中添加http和https代理来解决此问题。 添加https代理非常重要,因为gradle-2.10-all.zip是使用https:
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>
在Debian
,
我有同样的问题,修改了两个变化,
首先在gradle.properties
文件上为gradle启用代理,对于http
和https
:
systemProp.http.proxyHost=127.0.0.1 systemProp.http.proxyPort=8080 systemProp.https.proxyHost=127.0.0.1 systemProp.https.proxyPort=8080
然后通过安装lib32stdc++6
和lib32z1
包:
$ sudo apt-get install lib32stdc++6 lib32z1
我发现我的问题,启用debug
和info
选项gradlw
命令,我运行它的项目的根:
先用这个命令:
./gradlew --info --debug
接下来是这个命令:
./gradlew --info --debug :app:generateDebugSources
输出debugging(在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)
如果您使用的是代理服务器,则可能需要为您的代理设置JVM参数。
设置 – > Gradle – > Gradle VM选项:-Dhttp.proxyHost = 1.2.3.4 -Dhttp.proxyPort = 8080设置 – >编译器 – > VM选项:-Dhttp.proxyHost = 1.2.3.4 -Dhttp.proxyPort = 8080
我必须重新启动IDE才能使这些设置生效。
从浏览器中检查http://bintray.com ( jcenter
)或http://maven.org ( mavenCentral
),并根据可用站点更改build.gradle
repositories
设置。
我通过在工作项目中复制Gradle设置并将它们粘贴到错误的build.gradle文件中来修复了我的问题。
我今天有类似的问题,在我的情况下,我发现这是因为我的外部依赖之一难以从互联网上拉。
以下是我解决它的方法:
步骤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'
看起来很可疑,所以我将它评论出来,然后尝试再次构buildGradle。 这一次,Gradle构build成功了。
第3步
search其他工件版本。
在我的情况下,我searchhttps://bintray.com/bintray/jcenter/com.amazonaws%3aaws-android-sdk-iot ,发现2.2.22
也可用(目前)。
我在build.gradle
尝试了2.2.21
, 现在Gradle构build工作正常!
dependencies { ... compile 'com.amazonaws:aws-android-sdk-iot:2.2.21' }
其他参考
要了解更多关于Gradle中的外部依赖关系,请检查这些网站:
只是提供我的经验,以防其他情况遇到以下情况。
我面临的问题是我的一个仓库托pipe在我的公司networking上,而不是公共networking上。 VPN'ing后,我能够“解决依赖”。