文章目录
- Gradle
- JDK版本不兼容
Gradle
JDK版本不兼容
Incompatible because this component declares an API of a component compatible with Java 11 and the consumer needed a runtime of a component compatible with Java 8
- 查看module内gradle文件是否设置jdk版本,如
android {compileSdkVersion rootProject.ext.configVersion.compileSdkVersioncompileOptions {sourceCompatibility JavaVersion.VERSION_11targetCompatibility JavaVersion.VERSION_11}
}
- 查看Android Studio配置是否与JDK版本一致
如果还是报错,可能是Gradle用了系统变量默认配置的JDK版本。
- 查看电脑已安装的各种JDK版本:
/usr/libexec/java_home -V
输出
11.0.15 (x86_64) "Amazon.com Inc." - "Amazon Corretto 11" /Users/xxx/Library/Java/JavaVirtualMachines/corretto-11.0.15/Contents/Home11.0.2 (x86_64) "Oracle Corporation" - "Java SE 11.0.2" /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home1.8.333.02 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home1.8.0_333 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
/Users/xxx/Library/Java/JavaVirtualMachines/corretto-11.0.15/Contents/Home
安装了JDK11、JDK1.8多版本
- 查看目前系统变量配置的什么版本:
echo $JAVA_HOME
输出
xxx@xxxiMac ~ % $JAVA_HOME/bin/java -versionjava version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
- 查看系统变量配置的JDK路径
xxx@xxxiMac ~ % echo $JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
发现在编译过程中应该是使用了系统环境变量配置的JDK8。如需要使用JDK11版本,要另在项目中手动指定才能生效。
解决方法
在项目gradle.properties文件中,指定特定JDK,即替换为以上步骤中Android Studio配置的路径
org.gradle.java.home=/Users/xxx/Library/Java/JavaVirtualMachines/corretto-11.0.15/Contents/Home