应用程序:使用android studio调试启动时的preDexDebug异常,包括java库项目

时间:2015-11-16 19:14:56

标签: java android android-studio android-gradle gradle-plugin

我遇到了一个非常奇怪的问题,android studio只在尝试启动调试会话时给出了以下异常,但该项目编译得很好。
应用程序项目是一个非常基本的一个活动项目(使用 有精灵)此时。

该项目包含一个外部java库,它本身编译得很好。 当我进行清洁/重建时,所有内容都会完美地清理和编译 预期。 它只有当我尝试运行调试会话时,包含库, 当我得到例外。

当我删除java库作为依赖项时,项目启动就好了

我尝试使用--stacktrace / - debug运行,但没有信息 很有帮助。

版本信息: 构建工具:23.0.0 Android工作室1.4 Gradle插件1.3.1 Gradle 2.2.1

当我拿这个相同的java库时 并将其作为依赖项添加到旧的android项目,一切正常, 所以它与新项目设置向导/创建的东西正在导致 问题。

有没有人碰到这个,或者我需要什么特别的东西 将java lib添加到android项目时。

失败:构建因异常而失败。

  • 出了什么问题: 任务':app:preDexDebug'执行失败。

      

    com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files \ Java \ jdk1.7.0_79 \ bin \ java.exe''已完成具有非零退出值1

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

  • 例外情况是: org.gradle.api.tasks.TaskExecutionException:任务':app:preDexDebug'的执行失败。 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) 在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) 在org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) 在org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) 在org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 在org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) 在org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 在org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) 在org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 在org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:310) 在org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63) at org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) 在org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23) 在org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88) 在org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37) 在org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) 在org.gradle.execution.DefaultBuildExecuter.access $ 200(DefaultBuildExecuter.java:23) 在org.gradle.execution.DefaultBuildExecuter $ 2.proceed(DefaultBuildExecuter.java:68)

1 个答案:

答案 0 :(得分:0)

好的,我通过在build.gradle文件中添加一些排除行来解决它 这些jackson libs是我的java lib的一部分,并且造成某种影响 打包apk时大小冲突...希望它不会导致 任何其他问题。

packagingOptions {         排除'META-INF / ASL2.0'         排除'META-INF / LICENSE'         排除'META-INF / NOTICE'         排除'META-INF / services / com.fasterxml.jackson.core.ObjectCodec'         排除'META-INF / services / com.fasterxml.jackson.core.JsonFactory'         排除'META-INF / services / com.fasterxml.jackson.databind.Module'     }