我正在尝试使用 java 8 编译一个项目。
我已经设置了正确的jdk,如图所示:
还更改了目标版本:
但是我仍然收到错误: compileSdkVersion 'android-24' 需要 JDK 1.8 或更高版本才能编译。
我哪里错了?
编辑:我使用的是 Ubuntu 12.04
当进入 JDK 设置时,您可以:
添加“android app”模块build.gradle
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
在gradle.properties中设置sdk路径
org.gradle.java.home=/path_to_java_sdk_8/jdk1.8
还检查 .idea/modules/compiler.xml 与 1.7/1.8
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
...
<bytecodeTargetLevel target="1.8">
<module name="app" target="1.7" />
</bytecodeTargetLevel>
</component>
和misc.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
....
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7"
default="false" assert-keyword="true"
jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
顺便说一句:如果你想针对 java 1.8 进行编译,你需要使用“jack” 请参阅https://source.android.com/source/jack.html
android {
compileSdkVersion 28
buildToolsVersion = '28.0.3'
defaultConfig {
applicationId "your package name"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}