我使用Java 1.8来创建我的jar。
我可以在Java项目中使用它,但在Android项目中,我有以下错误:
Error:Error converting bytecode to dex:
Cause: Dex cannot parse version 52 byte code.
This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the 'java' gradle plugin in a library submodule add
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
to that submodule's build.gradle file.
Error:1 error; aborting
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'E:\Android-tool\JAVA\jdk1.8.0_77\bin\java.exe'' finished with non-zero exit value 1
Information:BUILD FAILED
Information:Total time: 6.468 secs
Information:3 errors
Information:0 warnings
Information:See complete output in console
答案 0 :(得分:0)
将这些内容添加到模块的build.gradle
:
android {
buildToolsVersion "24rc4"
defaultConfig {
jackOptions {
enabled true
}
}
dexOptions {
incremental true
}
compileOptions {
sourceCompatibility = org.gradle.api.JavaVersion.VERSION_1_8
targetCompatibility = org.gradle.api.JavaVersion.VERSION_1_8
}
}
答案 1 :(得分:0)
陷入同样的境地。这就是我做的。 1.从此链接Oracle Java 1.7
下载Jdk 1.7现在应该可以正常工作了。如果没有,请按照以下步骤操作:
对我来说就像一个魅力。 PS。 - 抱歉这么晚的回答
答案 2 :(得分:0)
如果是多应用程序项目中的Java库,请使用库的build.gardle文件中提到的代码。
apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
compileJava.options.bootClasspath = "D:/android/sdk/platforms/android-23/android.jar"
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
...
}
您需要使用本地路径更改compileJava.options.bootClasspath
到android.jar文件。这适用于Win10中的AS 2.2。
有关更多参考资料,请访问here
答案 3 :(得分:-1)
如果错误中自我解释:
这是由使用编译的库依赖项引起的 Java 8或更高版本。如果你正在使用' java'一个gradle插件 library submodule add targetCompatibility =' 1.7' sourceCompatibility =' 1.7'到该子模块的build.gradle文件。