Mac OSX 上 Android Studio 编译使用 JAVA8 及 retrolambda 的项目出错解决方案
来源:互联网 发布:零基础sql注入书籍 编辑:程序博客网 时间:2024/06/05 20:01
问题发生环境及表现:
- 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
- 通过终端重新启动 Android Studio,这样可以读取
参考:https://github.com/evant/gradle-retrolambda/issues/17
0 0
- Mac OSX 上 Android Studio 编译使用 JAVA8 及 retrolambda 的项目出错解决方案
- android上的JAVA8:使用retrolambda
- android上的JAVA8:使用retrolambda
- android studio retrolambda的使用
- android studio retrolambda配置及使用
- Android Studio使用gradle-retrolambda支持Java8 新特性 Lambde表达式
- 让android studio使用java8及java8的新特性
- Android Studio中配置Retrolambda插件【mac】
- Android Studio 编译项目出错的解决办法
- android studio 中gradle插件retrolambda的使用
- Android studio中使用retrolambda之前的配置
- [Gradle Retrolambda]Android Studio使用lambda表达式
- retrolambda在Android studio中的使用
- Android Studio中使用Retrolambda插件
- 在Wndows 上用CodeBlockes 写的代码移植到Mac OSX上,使用Xcode 编译
- AndroidStudio 中开启Java8语法和Retrolambda库的使用
- android studio配置retrolambda
- android studio编译android项目时出错
- IOS--UI--LessonGCD
- 黑马程序员----java基础面向对象总结
- 在 eclipse 上安装 genymotion 插件不成功的解决办法
- Linux 内核的同步机制
- 黑马程序员---iOS基础---C语言中的预处理命令
- Mac OSX 上 Android Studio 编译使用 JAVA8 及 retrolambda 的项目出错解决方案
- hdu5335Walk Out
- 同步和异步的区别
- c++中的vector容器
- vim+cscope时自动更新cscope的数据库文件
- 【操作系统】前趋图,程序的顺序执行和并发执行
- javascript实现ajax
- 来谈谈网络安全,关于Session冒名顶替和cookie防篡改的问题
- 嵌入式软件开发——CVTE 面试+笔试题