36

在 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

4

10 回答 10

36

buildToolsVersion我通过在我的build.gradle文件中设置以匹配 SDK 管理器中最新版本的 Android SDK Build-tools解决了这个问题。

显示 Build-tools 版本 22.0.1 已安装

就我而言,我安装了 Android SDK Build-tools 版本22.0.1,因此我进行了buildToolsVersion相应设置:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
...

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

于 2015-05-29T06:07:30.043 回答
11

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

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

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

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

于 2013-05-24T00:24:51.760 回答
3

我遇到了同样的问题“无法执行任务:compileDebugaidlaidl/debug/”。

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

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

无法从缓存中删除条目“/Users/..../.../.../..../build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.3” outputFileStates.bin (/Users/..../..../..../.gradle/2.2.1/taskArtifacts/outputFileStates.bin)。

我通过从终端删除outputFileStates.bin文件并允许 Gradle 重新创建它来解决它。

希望它可以帮助某人。

于 2015-06-08T15:59:21.697 回答
1

添加:

compileSdkVersion 17到您的 buid.gradel 文件(如下)。

并使用插件的第 3 版:(com.android.tools.build:gradle:0.3或更高版本的未来问题等)

编辑:我刚刚创建的参考项目。构建、标志等https://github.com/yegdroid/gradle_demo

//
// 一个遵循所有约定的基本 Android 应用程序
//
构建脚本 {
    存储库{
        mavenCentral()
    }
    依赖{
        类路径'com.android.tools.build:gradle:0.3'
    }
}
应用插件:'android'

安卓 {
    testBuildType = "调试"

    默认配置 {
        版本代码 = 1
        版本名称 = "0.1"
        minSdkVersion = 9
        targetSdkVersion = 17


        compileSdkVersion 17
        buildConfig "private final static boolean DEFAULT = true;", \
                    "私有最终静态字符串 FOO = \"foo\";"
    }

    构建类型 {
        调试{
            packageNameSuffix = ".debug"

            buildConfig "私有最终静态布尔 DEBUG2 = false;"
        }
    }

    aaptOptions {
        noCompress "txt"
    }
    源集{
          主要的 {
              显现 {
                  srcFile 'AndroidManifest.xml'
              }
              爪哇{
                  srcDir 'src'
              }
              资源{
                  srcDir 'res'
              }
              资产{
                  srcDir '资产'
              }
              资源 {
                  srcDir 'src'
              }
          }
      }
}
于 2013-05-23T14:53:22.117 回答
1

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

dependencies {

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

}
于 2013-08-06T17:31:00.227 回答
1

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

Android Studio --> 文件 --> 设置 --> 构建、执行、部署 --> 构建工具 --> Gradle

于 2015-08-14T18:56:02.177 回答
0

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

我遇到了一个与 Failed to execute the task 类似的问题:compileDebugaidlaidl/debug/.. Access is denied ...

我通过删除构建目录并再次重建它克服了这个问题[我使用的是 Gradle 0.14.4]

于 2015-02-05T07:51:00.583 回答
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'
    }
}
于 2015-06-08T10:21:42.400 回答
0

缺少的 AIDL 是 google android studio 问题,无法更新主要的 gradle 依赖类路径。

修复: - 打开项目 gradle 文件(没有应用程序,项目!) - 替换: 类路径 'com.android.tools.build:gradle:1.0.1' 或任何路径 'com.android.tools.build:gradle:1.3。 1'

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

于 2015-11-05T11:08:42.007 回答
0

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

于 2017-11-06T23:31:20.803 回答