我正在使用Eclipse。如果我将主(Android)项目的合规性级别从1.6更改为1.7,我会收到错误:
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.
如果我将“库”(Java)项目的合规性级别从1.7更改为1.6,则其中的大量代码将变为无效。
是否正在浏览Java项目的代码并修复我的单个选项中的每个错误?
答案 0 :(得分:1)
Google刚刚发布了Eclipse ADT 22.6,它增加了对Java 7语言功能的支持http://developer.android.com/tools/sdk/eclipse-adt.html。升级到最新版本的插件后,编译器合规性级别将包含1.7选项。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果这没有帮助,我建议更新所有android的sdk插件。我有类似的问题,在更新android的sdk之后,但是我错过了更新android构建工具并且导致了很多错误 - 可能和你一样。
答案 3 :(得分:0)
你可以使用使用Java7构建的jar,但前提是它不使用java7的任何特殊功能,否则dx将无法将jvm字节代码转换为dalvic格式。
但是有一个问题:android sdk的默认构建过程(来自eclipse例如)如果找到错误版本的类(用java7编译,dx生成警告并失败)则失败。您应该将一些参数传递给dx以丢弃此类警告。 Android studio和Idea的构建过程并不关心这个警告,dx尝试将Java字节代码转换为dalvic尽管是类版本。
答案 4 :(得分:0)
使用IntelliJ IDEA而不是Eclipse。在IDEA中,您可以分别从Android SDK设置产品语言级别(在项目结构→项目中)。只要您的代码仅使用不影响字节码的1.7功能,它就能工作(但编译器会给您警告)。通过这种方式,你可以使用钻石,打开弦乐和其他语法糖,但你可能会因为多次捕捉而失去运气。实际上,您甚至可以在奇怪的地方使用实验1.8功能,例如注释,但我还没有测试过lambdas(因为IDEA无论如何都缩写了代码)。有关详细信息,请参阅intellij-idea标记。
由于Android Studio是IntelliJ IDEA的特殊版本,因此它可能具有相同的功能,但我没有尝试过。
答案 5 :(得分:0)
如果您的库真的需要java 7,那么您无能为力。
否则,转到库项目设置,转到Java Compiler设置,然后选择1.6 .class文件兼容性。
如果源文件中存在错误,则表示您的库使用的java 7函数无法在java 6字节码中编译。你搞砸了。
否则,您现在可以导出可在android项目中使用的.jar文件。