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')
}
在此之前,我已经在我的Mac上编译了android资源4.4,并在OS系统中修改了一些文件,我认为原因是这样,但我忘记了哪个文件,有人遇到过这个问题
答案 0 :(得分:70)
在我的情况下,我使用Android Studio 1.2.1.1下载了Android M和Android 5.1.1的第22版,但是当我尝试执行Hello World时,同样的错误显示了我
因此解决方案是在应用程序中右键单击,如下图所示,选择“打开模块设置”.....
然后你有2个选择。我用最后一个版本改变了两个版本。
将SDK版本编译为API 21 Lollipop
和Build Tools Version to 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
答案 1 :(得分:20)
我解决了我的问题,将构建工具版本从21.1.2设置为22.0.1,希望它可以帮助遇到相同的人。
答案 2 :(得分:8)
按照Jorge的帖子截屏,你要做的就是确保不选择Build Tools Version 23.0.0 rc1。我还没有在IDE或谷歌的bug追踪器上完全调查过这个版本,但我所要做的只是选择以前的工具版本,并且在完成干净的构建后它运行得很好。我尝试了各种SDK min版本。
我在运行Oracle JDK 1.8.0_45-b14的Android Studio 1.2.1.1上运行OSX 10.10.3
更新解决方案 此问题在性质上与Execution failed for task ':app:compileDebugAidl': aidl is missing相同。请阅读我的帖子,了解正确的解决方案,并参考解决方案的起源。
答案 3 :(得分:2)
使用android studio 1.3预览构建应用程序的人可能会收到Debug AIDL缺失错误 解决方案:(按顺序) 1)下载预览频道下的所有工具(即修订号23.0.0 rc1) 2)在额外内容下载播放服务和android支持repo支持 3)重启Android Studio 4)按F4并将编译SDK版本设置为API 22+和Build工具版本23.0.0 rc1 5)打开build.gradle(Project:******)并使用classpath更改classpath行&#39; com.android.tools.build:gradle:1.3。+&#39;
答案 4 :(得分:1)
我按照Jorge的帖子截图。但是没有API 21作为选项。所以我保留了Compiled SDK Version&#39; API 22:Android 5.1(Lollipop)&#39;实际上并将Build Tool Version从23.0.0 rc1更改为22.0.1
我还必须安装JDK 7,因为22.0.1不支持JDK 6.之后,gradle构建成功。
答案 5 :(得分:1)
根据我的经验,没有关于 Compile Sdk Version 或 Build Tool Version ,关于新项目结构。根据这个issue, Aidl文件应该在src / main / aidl 中,一旦你将* .aidl放在假定的目录中,Android Studio就会按预期提供服务。
并且如果你想在src / main / java中使用它们,那么你需要你指定的重映射指令,如下所示:
var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
if (isMac) {
document.getElementById('container').style.overflow = 'hidden';
}
顺便说一下,在我的情况下,重映射方法只能通过Gradle 2.4(也可能是上面的版本)工作。