今天新建了一个项目,编译的时候报如下错误:
Error:Execution failed for task 'app:preDexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:Process 'command 'C:\Program Files\Java\jdk1.8.0_40\bin\java.exe''
finished with non-zero exit value 1
解决方法一:
Android项目,在主工程build.gradle下添加日下语句:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
...
}
Java 项目中添加
apply plugin: 'java'
version '1.8.1'
group 'com.yourcompany.package'
sourceCompatibility = JavaVersion.VERSION_1_6 //these two lines
targetCompatibility = JavaVersion.VERSION_1_6 //are the only ones that matter
stackoverflow地址:http://stackoverflow.com/questions/23847482/error-gradle-execution-failed-for-task-apppredexdebug
解决方法二:
查看Error console,找到错误jar包,删除即可。
解决方法三:
有可能是因为jar重复引用导致的问题(日志略有不同,Error:Execution failed for task 'app:DexDebug'.)
此问题多半由support-v4 和 support-v7 造成,找到重复项,删除或使用 provided 引用即可。
解决方法四:
我用的就是此方法,但我的情况比较特殊,因为我的PC上装了两个不同版本的JDK,且都配置在环境变量里。
所以
第一步:删除旧的jdk;
第二步:修改 app.imp 文件(JDK1.7为例)
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="SimpleDialog" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="java-gradle" name="Java-Gradle">
<configuration>
<option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
<option name="BUILDABLE" value="false" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
第三步:删除 .idea / .gradle / build 文件下;
第四步: clean - 编译 即可 ;