我最近决定从Eclipse切换到Android Studio。我导入了一个正在处理的项目,当我尝试运行项目时,我现在收到此错误。
Gradle: Execution failed for task ':project:dexDebug'.
> Could not call IncrementalTask.taskAction() on task ':project:dexDebug'
我已经在这个网站上巡航了2天,尝试不同的建议无济于事。我确实运行了gradlew compileDebug --stacktrace,这就是我得到的:
C:\Users\adam\AndroidStudioProjects\projectProject>gradlew compileDebug --stacktrace
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
:project:preBuild UP-TO-DATE
:project:preDebugBuild UP-TO-DATE
:project:preReleaseBuild UP-TO-DATE
:project:prepareComAndroidSupportAppcompatV71800Library UP-TO-DATE
:project:prepareComGoogleAndroidGmsPlayServices3225Library UP-TO-DATE
:project:prepareDebugDependencies
:project:compileDebugAidl UP-TO-DATE
:project:compileDebugRenderscript UP-TO-DATE
:project:generateDebugBuildConfig UP-TO-DATE
:project:mergeDebugAssets UP-TO-DATE
:project:mergeDebugResources UP-TO-DATE
:project:processDebugManifest UP-TO-DATE
:project:processDebugResources UP-TO-DATE
:project:generateDebugSources UP-TO-DATE
:project:compileDebug UP-TO-DATE
BUILD SUCCESSFUL
Total time: 10.459 secs
但是当我尝试实际运行项目时,我仍然遇到了这个错误。这是我的build.gradle(我的项目中有一个'libs'文件夹,包含google maps / places app的所有jar文件):
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"
defaultConfig {
minSdkVersion 8
targetSdkVersion 18
}
}
dependencies {
compile fileTree(dir: 'libs')
compile 'com.google.android.gms:play-services:3.2.25'
compile 'com.android.support:support-v4:18.0.0'
compile 'com.android.support:appcompat-v7:+'
}
和我的settings.gradle:
include ':project', ':project:libs:android-support-v4', ':project:libs:google-api-client-1.10.3-beta',
':project:libs:google-api-client-android2-1.10.3-beta', ':project:libs:google-http-client-1.10.3-beta',
':project:libs:google-http-client-android2-1.10.3-beta', ':project:libs:google-oauth-client-1.10.1-beta',
':project:libs:gson-2.1', ':project:libs:guava-11.0.1', ':project:libs:jackson-core-asl-1.9.4',
':project:libs:jsr305-1.3.9', ':project:libs:protobuf-java-2.2.0', ':project:libs:GoogleAdMobAdsSdk-6.4.1'
正如我所说,我已经尝试过几乎所有我在这里读到的关于这个错误并且没有运气的事情。任何帮助将不胜感激。
答案 0 :(得分:7)
如果您的问题与我的问题相同,则问题是库依赖项之间存在冲突。
就我而言,罪魁祸首是libs
目录中的第三方库jar,其中包含android-support-v4
库。这与 my 项目对支持库的依赖性(即compile 'com.android.support:support-v4:18.0.0'
中的build.gradle
行)相冲突。
一旦我更新到不需要/包含支持库的第三方库版本,问题就解决了。
发出compileDebug
任务时没有看到任何问题的原因是问题在dexDebug
阶段显现(当gradle合并所有项目和库中的字节码时,有点链接C / C ++项目中的阶段)。
请尝试使用./gradlew [clean] assembleDebug
答案 1 :(得分:1)
我想我应该尽快分享我在这个问题上的经验,因为我们遇到了同样的问题,但现在已经解决了。所以,如果它可以帮助其他任何人。
我也在使用android studio,并且正在玩布局并使用我的代码加载它们,因此没有标准的“layout / layout-land”类型文件夹..
无论如何,我纠正了任何代码,并逐步回滚我的更改,没有运气解决错误..然后我注意到关于文件夹名称不被接受的警告..是简单的像“layout-alternative1234”< / p>
无论如何,重命名该文件夹并没有变化。重新启动IDE和相同的交易......再次检查警告,发现它位于调试文件夹中..
在这种情况下,重建项目可以快速解决问题,通常我会在大多数结构更改期间重建......但是这次肯定已经忘记了。