最近升级了Mac电脑系统,用gradle命令自动打包出了问题。报了Execution failed for task ':app:compileReleaseKotlin'. 如图:
原因分析
1、报错的有这句话
Make sure Gradle is running on a JDK, not JRE.
说明gradle运行的JDK有问题。打开系统.bash_profile文件,看了一下Java配置,发现自己安装的JDK没有问题。
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
2、terminal运行命令:/usr/libexec/java_home -V,查看所有安装的Java
% /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.251.08 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_241 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_241 (x86_64) 是我自己安装的,1.8.251.08 (x86_64)是系统的,最后一行/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home表示使用的JDK的位置,发现不是我自己安装的,打开系统的Java文件夹,发现里面没有jre文件夹,元凶找到了。
解决方法
方法1:移除系统Java
sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -fr /Library/PreferencesPanes/JavaControlPanel.prefPane
sudo rm -fr ~/Library/Application\ Support/Oracle/Java
方法2:安卓项目指定gradle的jdk位置
在gradle.properties中配置org.gradle.java.home
org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home