如何在android中使用java 8库?

use*_*576 6 java android

我正在尝试使用在我的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

Ale*_*exS 3

解决方案1

等待android支持Java8。

解决方案2

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

解决方案3

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

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

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

java -Dretrolambda.inputDir=<extracted_classfiles>
     -Dretrolambda.classpath=<extracted_classfiles>
     -Dretrolambda.bytecodeVersion=50
     -javaagent:retrolambda.jar
     -jar retrolambda.jar
Run Code Online (Sandbox Code Playgroud)

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

也可以为 android 编写 Java8 程序

如果 Retrolambda 不起作用,也许您可​​以找到另一个工具将 Java8 字节码向后移植到 Java6 字节码。