Android Studio构建失败,出现异常“执行任务':app:dexDebug'失败”。

3

控制台日志:

失败

错误:构建过程发生异常。

  • 出错原因:执行任务“:app:dexDebug”失败。

    com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files (x86)\Java\jdk1.8.0\bin\java.exe'' finished with non-zero exit value 2

  • 尝试:使用--info或--debug选项运行以获取更多日志输出。

  • 异常信息:org.gradle.api.tasks.TaskExecutionException: 执行任务“:app:dexDebug”失败。 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:305) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88) at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68) at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80) at org.gradle.tooling.internal.provider.BuildModelAction.run(BuildModelAction.java:43) at org.gradle.tooling.internal.provider.BuildModelAction.run(BuildModelAction.java:30) at org.gradle.tooling.internal.provider.ConfiguringBuildAction.run(ConfiguringBuildAction.java:119) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:47) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(D

    build.gradle文件:

        apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 21
        buildToolsVersion "22.0.0"
    
        defaultConfig {
            applicationId "com.appdomain.appname"
            minSdkVersion 15
            targetSdkVersion 21
        }
    
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
        }
    
        dependencies {
            compile 'com.android.support:support-v4:19.1.+'
            compile 'com.google.guava:guava:10.0.1'
            compile 'com.google.android.gms:play-services:+'
            compile 'com.android.support:appcompat-v7:21.0.3'
            compile files('libs/gdata-client-1.0.jar')
            compile files('libs/gdata-client-meta-1.0.jar')
            compile files('libs/gdata-contacts-3.0.jar')
            compile files('libs/gdata-contacts-meta-3.0.jar')
            compile files('libs/gdata-core-1.0.jar')
            compile files('libs/libGoogleAnalyticsServices.jar')
            compile files('libs/mpandroidchartlibrary-1-7-4.jar')
            compile files('libs/recyclerview.jar')
        }
    

1
发布你的 build.gradle。 - IntelliJ Amiya
3个回答

6
我发现解决方案: 只需更改:
compile 'com.android.support:support-v4:19.1.+'

to

compile 'com.android.support:support-v4:22.0.0'

也改变

compile 'com.android.support:appcompat-v7:21.0.3'

to

compile 'com.android.support:appcompat-v7:22.0.0'

在您的build.gradle文件中使用Multi-dex属性,如下所示:

defaultConfig {
    applicationId "com.sendpulse.sendpulse"
    minSdkVersion 15
    targetSdkVersion 21
    multiDexEnabled true

}

然后清理项目并重新构建。

它起作用了,结果发现我使用了超过65k个类(这是Android的限制)。我不得不使用multi-dexing。无论如何还是谢谢。 - Mayank
我们需要下载所有版本的SDK进行开发吗?假设您的最小SDK要求为14,最大要求是最新的。有时Gradle无法与某些版本同步,导致“R.java”文件不可用。 - Mayank
Mayank说得很对!在你的build.gradle文件中,在defaultConfig中添加multiDexEnabled true来使用multiDex。 - Alexandr Tutkevich
干得好,我花了几个小时才偶然发现了你的答案。 - Pavel 'PK' Kaminsky
将multiDexEnabled设置为true解决了问题。谢谢! - Fenil
显示剩余2条评论

0
  1. 进行项目清理。转到“构建”->“清理项目”,然后再试一次。
  2. 如果(1)不起作用,请关闭并重新启动编译器。
  3. 快速检查您的Build.Grade文件,确保只保留重要文件,并删除未使用的文件。
  4. 如果所有其他方法都失败了,请在应用程序级别的Build.Gradle文件中添加“multiDexEnabled true”。

请执行此操作:

defaultConfig {
    applicationId "com.yourcompanyname.yourappname"
    minSdkVersion 21
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"

    // Enabling multidex support.
    multiDexEnabled true
}

0
我也遇到了类似的问题。我逐个删除每个jar文件,直到找到问题所在。
基本上,这个问题是由于jar文件引起的。 因此,请尝试将您的jar文件一个一个地放入依赖项中进行测试。您很容易就能解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接