Ответ 1
Я решаю свою проблему, устанавливаю версию средств сборки с 21.1.2 по 22.0.1, надеюсь, что она может помочь тем, кто отвечает тем же самым.
Environment:
Mac OS 10.10.3
Android studio:1.2.11
grandle:2.2.1
журнал:
Information:Gradle tasks [:generateDebugSources, :generateDebugTestSources]
:preBuild
:preDebugBuild
:checkDebugManifest
:prepareDebugDependencies
:compileDebugAidl FAILED
Error:Execution failed for task ':compileDebugAidl'.
> aidl is missing
// Top-level build file where you can add configuration options common to all sub-projects/modules.
import org.gradle.internal.os.OperatingSystem
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
String SDK_DIR = System.getenv("ANDROID_HOME")
if(SDK_DIR == null) {
Properties props = new Properties()
props.load(new FileInputStream(project.rootProject.file("local.properties")))
SDK_DIR = props.get('sdk.dir');
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
// 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')
}
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}
buildTypes {
release {
proguardFiles 'proguard.cfg'
}
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
}
dependencies {
compile fileTree(include: '*.jar', dir: 'libs')
provided files("${SDK_DIR}/platforms/android-17/data/layoutlib.jar")
//compile files('libs/pass-v1.1.3.jar')
// compile files('libs/sdk-v1.0.0.jar')
}
до этого я скомпилировал ресурс android 4.4 на своем Mac и модифицировал некоторые файлы в ОС, я думаю, что это причина, но я забыл, какой файл, кто-то столкнулся с этой проблемой еще
Я решаю свою проблему, устанавливаю версию средств сборки с 21.1.2 по 22.0.1, надеюсь, что она может помочь тем, кто отвечает тем же самым.
В моем случае я скачал версию 22 Android M и Android 5.1.1 с помощью Android Studio 1.2.1.1, но когда я пытаюсь сделать Hello World, эта же ошибка показала мне
Итак, решение состояло в том, чтобы сделать правый клик в приложении, как показано ниже, и выбрать "Открыть настройки модуля".....
тогда у вас есть 2 варианта. Я изменил оба с последней версией, которую я имел.
Скомпилируйте версию SDK для API 21 Lollipop
и версия Build Tools до 21.1.2
Наконец, очистите проект и постройте
UPDATE Вот мой build.gradle, чтобы сравнить его с build.gradle.
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
applicationId "com.android.bmi"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
}
ОБНОВЛЕНО
Чтобы получить Android Studio 1.3, выполните следующие действия.
Тогда у вас будет что-то вроде этого, чтобы обновить Android Studio до версии 1.3, и с этим вы можете протестировать Android M
Для тех, у кого вы все еще получаете ошибку "helpl missing":
Для меня установка версии инструментов сборки не является решением.
В файле build.gradle верхнего уровня попробуйте установить:
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.google.gms:google-services:1.3.1'
а затем используйте buildToolsVersion '23.0.1'
.
Он отлично работал у меня. Я надеюсь, что это поможет другим.
После снимков экрана из сообщения Jorge все, что вам нужно сделать, это убедиться, что вы не выбираете Build Tools Version 23.0.0 rc1. Я не полностью изучил эту версию в среде IDE или в Google, но все, что мне нужно было сделать, это выбрать предыдущую версию инструмента, и она отлично справилась после выполнения чистой сборки. Я пробовал это с помощью различных версий SDK.
Я запускаю OSX 10.10.3 с Android Studio 1.2.1.1, работающим на Oracle JDK 1.8.0_45-b14
ОБНОВЛЕНО РЕШЕНИЕ Эта проблема идентична по своей природе Выполнение неудачно для задачи": app: compileDebugAidl ': aidl отсутствует. Пожалуйста, прочитайте мое сообщение для правильного решения и ссылки на генезис решения.
люди, которые создают приложения с версией android studio 1.3, могут получить недостающую ошибку отладки AIDL Решение: (Следуйте последовательно) 1) Загрузите все инструменты в канале предварительного просмотра (т.е. Версия № 23.0.0 rc1) 2) Загрузите игровые серверы и поддержку поддержки репортера поддержки Android в дополнение к дополнительным функциям 3) Перезапустите Android Studio 4) Нажмите F4 и установите скомпилированную версию SDK в API 22+ и Build tool version 23.0.0 rc1 5) open build.gradle(Project: ******) и измените путь classpath с помощью classpath 'com.android.tools.build: gradle:1. +'
Я следил за скриншотами из сообщения Жоржа. Но не было API 21 в качестве опции. Таким образом, я сохранил скомпилированную версию SDK версии "API 22: Android 5.1 (Lollipop)", как она есть, и изменила версию инструмента сборки с 23.0.0 rc1 до 22.0.1
Мне также пришлось установить JDK 7, поскольку 22.0.1 не поддерживал JDK 6. После этого завершилась реализация gradle.
По моему опыту, речь идет не о версии компиляции Sdk или версии инструмента сборки, а о новой структуре проекта. Согласно issue, Aidl файлы должны находиться в src/main/aidl, как только вы ставите *.aidl в предполагаемом каталоге, Android Studio будет обслуживать его, как и ожидалось.
И Если вы хотите иметь их в src/main/java, вам понадобится команда переназначения, как вы указали, как показано ниже:
sourceSets {
main {
aidl.srcDirs = ['src/main/java']
}
}
btw, в моей ситуации подход переназначения работает только с помощью Gradle 2.4 (также, вероятно, выше версии).