在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
答案 0 :(得分:36)
我通过在ToDate(userinput,'dd/MM/yyyy')
文件中设置buildToolsVersion
以匹配SDK管理器中最新版本的Android SDK Build-tools来解决此问题。
就我而言,我安装了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结构的库,只有一个函数不同于一个,或者您使用相同的库两次。 我刚看到此消息的另一个原因