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) |