Android Studio:Gradle构建失败 - 任务'执行失败':compileDebugAidl'

时间:2013-05-22 02:17:55

标签: android gradle android-studio

在Android Studio(I / O预览)AI - 130.677228中使用gradle更改源代码并构建后,构建失败,并显示以下错误:

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'.

第二次运行构建时,构建将成功。

使用版本1.6的gradle包装器

这真的很糟糕,因为它在第一次失败后会进行长时间构建(非增量)。

有没有办法不发生这种失败?

编辑以包含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

10 个答案:

答案 0 :(得分:36)

我通过在ToDate(userinput,'dd/MM/yyyy')文件中设置buildToolsVersion以匹配SDK管理器中最新版本的Android SDK Build-tools来解决此问题。

Showing Build-tools version 22.0.1 is installed

就我而言,我安装了Android SDK Build-tools版本 22.0.1 ,因此我相应地设置了build.gradle

buildToolsVersion

进行更改后,我的应用程序构建得非常顺利。

答案 1 :(得分:11)

我不确定这是怎么回事。看起来Gradle插件本身与提供WaitableExecutor类的依赖项之间存在不匹配。

但是你提到Gradle 1.5,这是一个问题。

插件版本0.3与Gradle 1.3-1.4兼容 上周发布的新版本0.4与Gradle 1.6 +兼容

确保使用0.4和新的Gradle版本。

答案 2 :(得分:3)

我遇到了同样的问题"执行任务失败:compileDebugaidl aidl / debug /"。

我在Gradle Console中进一步了解具体细节,内容如下:

无法捕获任务' prepareComAndroidSupportAppcompatV72103Library'的输出文件的快照。在最新检查期间。

无法删除条目' / Users /.... /.../.../..../ build / intermediates / explosion-aar / com.android.support / appcompat -V7 / 21.0.3'来自cache outputFileStates.bin(/ Users /.... /.... /....。。gradle / 2.2.1 / taskArtifacts / outputFileStates.bin)。

我通过从终端删除 outputFileStates.bin 文件解决了这个问题,并允许Gradle重新创建它。

希望它对某人有帮助。

答案 3 :(得分:1)

添加:

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'
              }
          }
      }
}

答案 4 :(得分:1)

将以下代码添加到build.gradle文件中。这对我有用。

dependencies {

compile fileTree(dir: 'libs', include: '*.jar')

}

答案 5 :(得分:1)

请尝试检查"使用默认的gradle包装"项目级设置中的选项。

Android Studio - >档案 - >设置 - >构建,执行,部署 - >构建工具 - >摇篮

答案 6 :(得分:0)

喜欢在这里注册我的问题和解决方案,因为它几乎与发布的问题有关,如果有人偶然发现错误可以快速克服它。

我遇到了类似的问题,无法执行任务:compileDebugaidl aidl / debug / ..访问被拒绝...

我通过删除构建目录并重新构建它来克服了这个问题[我正在使用Gradle 0.14.4]

答案 7 :(得分:0)

这对我有用 编辑项目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'
    }
}

答案 8 :(得分:0)

缺少AIDL的东西是google android studio问题,不能更新主要的gradle依赖类路径。

修正: - 打开项目gradle文件(没有app,项目!) - 替换: classpath'com.android.tools.build:gradle:1.0.1'或其他 classpath'com.android.tools.build:grad:1.3.1'

如果您之前无法编译,可编辑的项目,google cat&狗没有睡觉,而且他们正在进行更改,更新,因此你必须醒来并在他们忘记的地方做出改变。 gradle是一个非常不稳定的项目和错误。

答案 9 :(得分:0)

我可以看到gradle(错误过滤)输出吗? (toolwindow gradle,gradle tab) 看起来aidl文件中的函数存在问题,这些函数主要用于外部应用程序界面,&服务。 等将数据传输到窗口小部件,或者如果需要在两个应用程序之间传输数据。 第二个可能性是两个具有相同aidl结构的库,只有一个函数不同于一个,或者您使用相同的库两次。 我刚看到此消息的另一个原因