5

我正在使用 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 项目的代码并修复每个错误,这是我的唯一选择?

4

6 回答 6

1

Google 刚刚发布了 Eclipse ADT 22.6,它增加了对 Java 7 语言功能的支持,http://developer.android.com/tools/sdk/eclipse-adt.html。升级到插件的最新版本后,编译器合规级别将包括 1.7 选项。

于 2014-03-04T22:58:38.787 回答
0

尝试清理您的项目,并修复 android 属性。链接在这里这里

于 2013-08-23T20:38:30.500 回答
0

我想您可以在这里找到答案:Android 需要编译器合规级别 5.0 或 6.0。而是找到了“1.7”。请使用 Android 工具 > 修复项目属性

如果这没有帮助,我建议更新所有 android 的 sdk 插件。在更新 android 的 sdk 后,我遇到了类似的问题,但我错过了更新 android 构建工具,这导致了很多错误——你可能也一样。

于 2013-08-28T13:54:48.627 回答
0

您可以使用用 Java7 构建的 jar,但前提是它不使用 java7 的任何特殊功能,否则 dx 将无法将 jvm 字节码转换为 dalvic 格式。

但是有一个问题:如果发现版本错误的类(使用 java7 编译,dx 生成警告并失败),则 android sdk(来自 eclipse 例如)的默认构建过程将失败。您应该将一些参数传递给 dx 以删除此类警告。Android studio 和 Idea 的构建过程并不关心这个警告,并且 dx 尝试将 java 字节码转换为 dalvic,尽管有类版本。

于 2013-08-29T11:43:49.947 回答
0

使用 IntelliJ IDEA 而不是 Eclipse。在 IDEA 中,您可以将产品语言级别(在Project StructureProject中)与 Android SDK 分开设置。只要您的代码仅使用不影响字节码的 1.7 功能,它就可以工作(但编译器会给您警告)。通过这种方式,您可以使用菱形、打开字符串和其他语法糖,但您可能无法使用 multi-catch。事实上,你甚至可以在陌生的地方使用注释等实验性 1.8 功能,但我还没有测试过 lambdas(因为 IDEA 无论如何都会缩写代码)。有关更多信息,请参阅标签。

由于 Android Studio 是 IntelliJ IDEA 的特殊版本,它可能具有相同的功能,但我没有尝试过。

于 2013-09-02T23:02:24.683 回答
0

如果您的库真的需要 java 7,那么您无能为力。

否则,转到您的库项目设置,转到 Java 编译器设置,然后选择 1.6 .class 文件兼容性。

如果您的源文件中有错误,则意味着您的库使用了无法在 java 6 字节码中编译的 java 7 函数。你完蛋了。

否则,您现在可以导出可以在您的 android 项目中使用的 .jar 文件。

于 2013-09-03T12:47:08.990 回答