macOS Catalina 10.15.6
,使用HomeBrew
执行brew install java
,安装了目前最新的openjdk-14.0.1
之后,执行bash gradlew clean build
,报告如下错误信息:
1 2 3 4 |
com.xxxx.plugin.face.FaceTest > executeAsync_Success FAILED java.lang.RuntimeException at ReflectionHelpers.java:223 Caused by: java.lang.RuntimeException at ReflectionHelpers.java:208 Caused by: java.lang.IllegalAccessException at UnsafeFieldAccessorImpl.java:76 |
目前测试发现,升级Robolectric
版本并不能解决问题。其实对于Android Studio
来说,完全可以指定Android Studio
自带的JDK
进行编译。
1 2 3 4 5 6 7 8 |
$ echo "export JAVA_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'" >> ~/.bashrc $ source ~/.bashrc # 由于macOS Catalina 10.15.6已经切换到zsh了,因此需要配置zsh的配置文件 $ echo "export JAVA_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'" >> ~/.zprofile $ source ~/.zprofile |
关闭SHELL
,之后重新打开新的SHELL
,重新执行编译命令即可。
建议Android
版本发布使用的JDK
就是Android Studio
自带的JDK
,这样可以保证应用的稳定性,减少由于JDK
差异导致的各种问题。
当前建议的版本
1 2 3 4 |
$ java -version openjdk version "1.8.0_242-release" OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593) OpenJDK 64-Bit Server VM (build 25.242-b3-6222593, mixed mode) |