7

我最近决定从 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 应用程序的所有 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'

正如我所说,我已经尝试了几乎所有我在这里读到的关于这个错误的东西,但没有运气。任何帮助将不胜感激。

4

2 回答 2

7

如果您的问题与我的相同,则问题是库依赖项之间的冲突。

就我而言,罪魁祸首是目录中的第 3 方库 jar libs,其中包括该android-support-v4库。这与的项目对支持库的依赖(即 中的compile 'com.android.support:support-v4:18.0.0'build.gradle)相冲突。

一旦我更新到不需要/包含支持库的第 3 方库版本,问题就解决了。

您在发布任务时没有看到任何问题的原因compileDebug是问题在该阶段表现出来dexDebug(当 gradle 合并来自所有项目和库的字节码时,有点像 C/C++ 项目中的链接阶段)。

尝试使用./gradlew [clean] assembleDebug

于 2013-11-01T09:51:41.800 回答
1

以为我应该尽快分享我在这方面的经验,因为刚刚遇到了同样的问题,但现在已经解决了。因此,如果它对其他人有帮助。

我也在使用 android studio 并且正在玩布局并使用我的代码加载它们,因此没有标准的“布局/布局土地”类型文件夹..

无论如何,我更正了所有代码并逐步回滚了我的更改,但没有解决错误。然后我注意到一个关于文件夹名称不被接受的警告......就像“layout-alternative1234”这样简单

无论如何,重命名文件夹并没有改变。重新启动 IDE 和同样的处理...再次检查警告发现它位于调试文件夹中..

在这种情况下,重建项目很快为我解决了这个问题,通常我会在大多数结构更改期间重建......但这次一定忘记了。

于 2014-02-02T14:47:00.310 回答