Android Studio: Gradle build failed - Выполнение не выполнено для задачи: compileDebugAidl '
После изменения источника и построения с помощью gradle в Android Studio (предварительный просмотр ввода/вывода) AI - 130.677228 сборка не выполняется со следующей ошибкой:
Gradle:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileDebugAidl'.
> No signature of method: com.android.ide.common.internal.WaitableExecutor.waitForTasks() is applicable for argument types: () values: []
Possible solutions: waitForAllTasks()
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Could not execute build using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.6-bin.zip'.
Во второй раз, когда выполняется сборка, сборка будет успешной.
Использование оболочки gradle с версией 1.6
Это действительно отстой, потому что он делает длинную сборку (без инкрементного) после ее отказа в первый раз.
Есть ли способ не иметь этот отказ?
EDIT включить build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
task wrapper(type: Wrapper) {
gradleVersion = '1.6'
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion "Google Inc.:Google APIs:17"
buildToolsVersion "17"
defaultConfig {
minSdkVersion 11
targetSdkVersion 17
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}
Ссылка на вопрос о коде Google: https://code.google.com/p/android/issues/detail?id=56158
Ответы
Ответ 1
Я не уверен, как это возможно. Похоже, что у вас есть несоответствие между самим плагином Gradle и его зависимостями, которые предоставляют класс WaitableExecutor.
Однако вы упоминаете Gradle 1.5, и это проблема.
Версия плагина 0.3 была совместима с Gradle 1.3-1.4
Новый выпуск версии на прошлой неделе, 0,4 совместим с Gradle 1.6 +
Убедитесь, что вы используете 0.4 и новую версию Gradle.
Ответ 2
Я решил эту проблему, установив buildToolsVersion
в мой файл build.gradle
в соответствии с последней версией SDK-инструментов Android SDK в менеджере SDK.
![Showing Build-tools version 22.0.1 is installed]()
В моем случае у меня установлена версия Build-tools Android SDK версии 22.0.1, поэтому я установил buildToolsVersion
соответственно:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
...
После внесения этого изменения мое приложение нестроит.
Ответ 3
Я столкнулся с той же проблемой "Не удалось выполнить задачу: compileDebugaidl aidl/debug/".
Я видел далее в Gradle Консоль для специфики, и она читается ниже:
Не удалось записать моментальный снимок выходных файлов для задачи "prepareComAndroidSupportAppcompatV72103Library" во время проверки.
Не удалось удалить запись '/Users/..../.../.../..../build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.3 'from cache outputFileStates.bin(/Users/..../..../..../. gradle/2.2.1/taskArtifacts/outputFileStates.bin).
Я разрешил его, удалив файл outputFileStates.bin с терминала и разрешив Gradle его воссоздать.
Надеюсь, это поможет кому-то.
Ответ 4
Добавить
compileSdkVersion 17
в ваш файл buid.gradel(см. ниже).
И используйте версию 3 плагина: com.android.tools.build:gradle:0.3
(или выше для будущих вопросов и т.д.)
Изменить: только что созданный проект ссылки. Строки, знаки и т.д. https://github.com/yegdroid/gradle_demo
//
// A basic Android application that follows all the conventions
//
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.3'
}
}
apply plugin: 'android'
android {
testBuildType = "debug"
defaultConfig {
versionCode = 1
versionName = "0.1"
minSdkVersion = 9
targetSdkVersion = 17
compileSdkVersion 17
buildConfig "private final static boolean DEFAULT = true;", \
"private final static String FOO = \"foo\";"
}
buildTypes {
debug {
packageNameSuffix = ".debug"
buildConfig "private final static boolean DEBUG2 = false;"
}
}
aaptOptions {
noCompress "txt"
}
sourceSets {
main {
manifest {
srcFile 'AndroidManifest.xml'
}
java {
srcDir 'src'
}
res {
srcDir 'res'
}
assets {
srcDir 'assets'
}
resources {
srcDir 'src'
}
}
}
}
Ответ 5
Добавьте код ниже в файл build.gradle. Это работает для меня.
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
Ответ 6
Пожалуйста, попробуйте проверить "Использовать опцию по умолчанию gradle обертка" в настройках уровня проекта.
Android Studio → Файл → Настройки → Сборка, выполнение, развертывание → Инструменты сборки → Gradle
Ответ 7
Мне нравится регистрировать мою проблему и решение здесь, так как она почти уместна для опубликованной проблемы: если кто-то споткнутся об ошибке, можно быстро ее преодолеть.
У меня возникла аналогичная проблема с ошибкой выполнить задачу: compileDebugaidl helpl/debug/.. Доступ запрещен...
Я преодолел проблему, удалив каталог сборки и восстановив его снова [я использую Gradle 0.14.4]
Ответ 8
Это работает для меня
изменить в проекте build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
//delete this line below
classpath 'com.android.tools.build:gradle:1.0.1'
//add this line below
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
Ответ 9
Отсутствующая AIDL-проблема - проблема студии google android, чтобы не обновлять основной путь классов зависимостей gradle.
Fix:
- открыть файл проекта gradle (нет приложения, проект!)
- заменить:
classpath 'com.android.tools.build:gradle:1.0.1' или что-то еще
с
classpath 'com.android.tools.build:gradle:1.3.1'
Если вы не можете скомпилировать время раньше, компилируемый проект, кошка и собака google не спят, и они вносят изменения, обновления, поэтому вам нужно проснуться и внести изменения там, где они забывают.
И gradle - это довольно неустойчивый проект и багги.
Ответ 10
Могу ли я увидеть вывод gradle (error filter)? (вкладка gradle, gradle вкладка )
Похоже, что есть проблемы с функциями внутри файлов helpl, которые в основном предназначены для внешнего интерфейса приложения и служб.
Etc для передачи данных в виджет или для передачи данных между двумя приложениями.
Вторая возможность - две библиотеки с одинаковой структурой помощи, только одна функция отличается, чем одна, или вы используете одну и ту же библиотеку дважды.
Еще одна причина, по которой я увидел это сообщение