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-v4support-v7 包,还有一些常用的开源项目,例如Gson,Nineoldandroids…,这些常用的开源项目有可能在你引用的 library 项目中已经被引用过了。

解决办法:

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

dependencies {
    compile files('libs/nineoldandroids-2.4.0.jar')
}

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

改为

dependencies { compile 'com.nineoldandroids:library:2.4.0' }

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

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://stackoverflow.com/questions/27675717/gradle-error-execution-failed-for-task-appdexdebug/27675841

你可能感兴趣的:(android,exception,gradle,android-studio)