如何在android中使用java 8库?

我正在尝试使用在我的android项目中使用java 8的库。 我无法找到一种方法来完成这项工作。 我试过使用复古lambda但它没有帮助。 我一直收到错误:com.android.dx.cf.iface.ParseException:bad class file magic(cafebabe)或version(0034.0000)

我已经研究了这个并且学到了它,因为包含的库中有java 8语法。 我一直在使用java 8 sdk编译并使用android studio 08.2。 救命! 该库是: https : //github.com/robrua/Orianna

解决方案1

等待android支持Java8。

解决方案2

使用不是Java8的库的早期版本和/或要求库的开发人员提供一个/最后一个Java6(或用于向上的Java7)库。

解决方案3

这是某种黑客 ,我没有测试甚至使用它!

使用retrolambda将Java8字节码反向移植到Java6。 在retrolambda的主页上,您可以找到一些关于它的文档。 retrolambda的下载地点在这里 。

可能你必须将库jar解压缩到一个文件夹并运行如下命令:

java -Dretrolambda.inputDir= -Dretrolambda.classpath= -Dretrolambda.bytecodeVersion=50 -javaagent:retrolambda.jar -jar retrolambda.jar 

也许您必须根据库的依赖关系扩展类路径。 然后你必须将生成的jar文件复制到你的android-project的lib文件夹中。

也可以为Java编程Java8 。

如果retrolambda不起作用,你可以找到另一个工具来将Java8字节码反向移植到Java6字节码。