有没有办法在Android库项目中使用Java 8功能?

时间:2016-06-22 17:55:19

标签: android java-8

我跟着Android Java 8 Features manual。它适用于Android应用程序项目。但是当我尝试将它与Android库项目一起使用时,我得到了

Error:Library projects cannot enable Jack. Jack is enabled in default config.

部分解决方案: 我用Gradle Retrolambda Plugin启用了lamdba表达式。

2 个答案:

答案 0 :(得分:18)

我有同样的问题并尝试了不同的方法。它现在适用于我而不使用retrolambda(在运行时产生一些奇怪的错误)。杰克也因你提到的原因而不活跃。 google.com上有一个关于此主题的有趣错误帖子:https://code.google.com/p/android/issues/detail?id=211386

这是我的build.gradle脚本,我使用bug文章中的解决方法来修复编译过程中的“MethodType not found”异常。

JPopupMenu

答案 1 :(得分:0)

这肯定是一个漫长的旅程。我尝试了gradle插件的所有可能组合,实验 gradle插件+ retrolambda + Jack等,但没有运气。到现在。从Android Studio 3.0预览版1或更高版本(以及Android Gradle插件3.0.0-alpha1或更高版本),不推荐使用Jack工具链,并替换为一些新的字节码转换 - sugaring.gouraring ,与标准javac编译器一起使用。

通过这种设置,我个人(最终!!!)成功地在库项目中使用了lambda等Java 8功能。

此页面包含所有技术信息以及迁移帮助等:https://developer.android.com/studio/write/java8-support.html