Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessException

异常Log:

Error:Execution failed for task ‘:app:dexDebug’. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/Library/……/java” finished with non-zero exit value 2

错误原因:

这个异常在Android Studio编译运行的时候出现,原因是项目中引用了重复的jar包,这可能是因为新引入的library module中有和主项目中重复引用的jar包,需要重点检查 Android 兼容包 support-v4 和 support-v7 包,还有一些常用的开源项目,例如Gson,Nineoldandroids…,这些常用的开源项目有可能在你引用的 library 项目中已经被引用过了。

解决办法:

解决这个问题我们只需要删除主项目中 libs 文件夹中和 library中重复的部分即可,另外,我推荐大家改变将 jar 包放在 libs 目录中的习惯,而使用 Gradle 构建,在 module 下的 build.gradle 目录下将

dependencies {
compile files('libs/nineoldandroids-2.4.0.jar')
}
  • 1
  • 2
  • 3

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
  • 1
  • 2
  • 3

改为

dependencies {
compile 'com.nineoldandroids:library:2.4.0'
}
  • 1
  • 2
  • 3

参考链接中,我发现一个类似的异常

Error:Execution failed for task ‘:app:dexDebug’. 
> com.android.ide.common.internal.LoggedErrorException

出现这个错误是因为主项目和Library项目中都引用了 compile ‘com.nineoldandroids:library:2.4.0’ ,但我在最新的 Android Studio 1.3 Preview 和 Gradle 2.3中给主项目和Library项目进行了一次模拟,却没有出现该异常,根据问题中给出了 build.gradle 文件,这可能是因为使用了低版本Android Studio 或 Gradle 的缘故,所以大家最好还是在项目中检查一下,library项目中已经引入的jar,library就不要再引入到主项目中了。

参考链接:

http://*.com/questions/27675717/gradle-error-execution-failed-for-task-appdexdebug/27675841

上一篇:php usort 按照数组中的某个键值排序


下一篇:python中文编码&json中文输出问题