您的位置:首页 > 移动开发 > Android开发

Mac OSX 上 Android Studio 编译使用 JAVA8 及 retrolambda 的项目出错解决方案

2015-07-30 21:34 676 查看
问题发生环境及表现:

Mac OSX Yosemite 系统

项目中使用 retrolambda 及 java8

在 Android Studio 中直接 build 时出现如下错误:

编译器 (1.8.0_40) 中出现异常错误。 如果在 Bug Parade 中没有找到该错误, 请在 Java Developer Connection (http://java.sun.com/webapps/bugreport) 中建立 Bug。请在报告中附上您的程序和以下诊断信息。谢谢。
com.sun.tools.javac.code.Symbol$CompletionFailure: 找不到java.lang.invoke.MethodType的类文件
Error:Execution failed for task ':app:_compileDebugJava'.
> Compilation failed; see the compiler error output for details.


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:_compileDebugJava'.
> Compilation failed; see the compiler error output for details.


问题探索及解决方案:

首先确保根据 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

参考:https://github.com/evant/gradle-retrolambda/issues/17
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息