Android Studio застряла на "Gradle: разрешить зависимости" _debugCompile "или" detachedConfiguration1 "
Я понятия не имею, что я изменил в своем проекте, но он не может пройти мимо этого шага при создании сценариев gradle.
Нет проблем с его созданием с помощью команды "gradle собрать".
ИЗМЕНИТЬ: предыдущая застрявшая точка была решена зависимостью detanciesConfiguration1. (После первой неудачной попытки _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')
}
}
Ответы
Ответ 1
Я слишком часто сталкивался с этой проблемой, так как переключился на Android Studio. Это действительно проблема с недоступностью репозитория - либо из-за проблемы с сетью, либо, скорее, с репо, по какой-либо причине.
Самый простой способ, который я нашел, - просто выбрать режим работы в автономном режиме в настройках Android Studio. Это не поможет, если вам нужно добавить новую зависимость, но если у вас уже есть все ваши зависимости, это делает трюк.
Чтобы включить эту настройку, перейдите к:
Настройки → Gradle
В правой части выберите "Глобальные настройки градиента" и установите флажок "Работа в автономном режиме".
Коробка должна выглядеть так:
![enter image description here]()
Вы можете периодически снижать этот флажок, чтобы узнать, вернулся ли репо.
ПРИМЕЧАНИЕ. Эта опция эквивалентна установке флага --offline при запуске сборки gradle из командной строки.
Ответ 2
Оказывается, что эта строка:
repositories {
maven {
url 'http://ksoap2-android.googlecode.com/svn/m2-repo'
}
несет исключительную ответственность за вечно застрявшую студию Android. Вероятно, хранилище неактивно/отключено сегодня...
Интересные вопросы:
Ответ 3
Запустите gradle из командной строки (открытие терминала в папке проекта) с помощью -info и проверьте, где он остановлен. Я сталкивался с чем-то подобным, и он был связан с jcenter(), потому что он не может достичь ресурса:
Ресурс отсутствует. HTTP GET
поэтому изменение jcenter()
на mavenCentral()
в MyProject/build.gradle
сделало трюк.
Надеюсь, это поможет.
Ответ 4
Я столкнулся с той же проблемой и разрешил ее, добавив как HTTP, так и https-прокси в файл gradle.properties. Важно добавить прокси-сервер 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>
Ответ 5
На Debian
,
У меня та же проблема, исправленная для меня с двумя изменениями,
Сначала включите прокси для gradle в файле gradle.properties
, как для 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
Отладка вывода (на 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
) в браузере и измените настройку repositories
в build.gradle
в соответствии с доступным сайтом.
Ответ 7
Если вы используете прокси-сервер, вам может потребоваться установить параметры JVM для вашего прокси.
Настройки → Gradle → Gradle Параметры виртуальной машины: -Dhttp.proxyHost = 1.2.3.4 -Dhttp.proxyPort = 8080
Настройки → Компилятор → Параметры виртуальной машины: -Dhttp.proxyHost = 1.2.3.4 -Dhttp.proxyPort = 8080
Мне пришлось перезапустить среду IDE, чтобы эти настройки вступили в силу.
Ответ 8
Я исправил мой, скопировав настройки Gradle в рабочий проект и вставив их в файл bad build.gradle.
Ответ 9
Сегодня у меня есть аналогичная проблема, и в моем случае я обнаружил, что это связано с тем, что из-за моей внешней зависимости трудно вытащить из Интернета.
Вот как я его решил:
Шаг 1
Проверьте файлы dependencies
in 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.21
, 2.2.22
также доступны (в настоящее время).
Я пробовал 2.2.21
в моих конструкциях build.gradle
, и Gradle!
dependencies {
...
compile 'com.amazonaws:aws-android-sdk-iot:2.2.21'
}
Другие ссылки
Чтобы узнать больше о внешних зависимостях в Gradle, проверьте эти сайты:
Ответ 10
Просто предоставляю свой опыт, если другие выполняются в следующем сценарии.
Проблема для меня была одной из моих репозиториев, которая была размещена в сети моих компаний, а не в общедоступной сети. После VPN'ing я смог "разрешить зависимость".