问题发生环境及表现:
- Mac OSX Yosemite 系统
- 项目中使用 retrolambda 及 java8
- 在 Android Studio 中直接 build 时出现如下错误:
1 | 编译器 (1.8.0_40) 中出现异常错误。 如果在 Bug Parade 中没有找到该错误, 请在 Java Developer Connection (http://java.sun.com/webapps/bugreport) 中建立 Bug。请在报告中附上您的程序和以下诊断信息。谢谢。 |
1 | FAILURE: Build failed with an exception. |
问题探索及解决方案:
- 首先确保根据 gradle-retrolambda 官方文档正确配置
- 在系统中设置 JAVA8_HOME 等环境变量。设置完成以后在正常情况下在终端中可以正常编译。
- 这时在 Android Studio 中直接 build 依然不行,原因是 Android Studio 在启动过程中不会读取
/home/user/.bash_profile
或/home/user/.bashrc
,因此build.gradle
中 retrolambda 的配置无法获取正确的 JAVA8_HOME 路径。 - 可行的解决方案:
- 通过终端重新启动 Android Studio,这样可以读取
/home/user/.bash_profile
或/home/user/.bashrc
中设置的环境变量 - 设置系统级的环境变量,如在
/etc/profile
中添加 JAVA8_HOME
- 通过终端重新启动 Android Studio,这样可以读取