【问题标题】:Android requires compliance level 5.0 or 6.0 [duplicate]Android 需要合规级别 5.0 或 6.0 [重复]
【发布时间】:2012-06-09 18:03:46
【问题描述】:

可能重复:
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties

我已将这行代码添加到我的 android 应用程序中:

ArrayList<hashmap<string, string="">> mylist = new ArrayList<hashmap<string, string="">>();

它在其他人的应用程序中有效,但在我的应用程序中,它旁边出现一个红十字,当我将鼠标悬停在它上面时,它会显示:

Multiple markers at this line
- Syntax error on token ">>", invalid AssignmentOperator
- Syntax error on token ",", TypeArgument2 expected after this token
- Syntax error on tokens, delete these tokens

我在控制台上也显示错误:

Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

我试过了:

项目 -> android 工具 -> 修复项目属性,

项目 -> 干净,

项目 -> 属性 -> java 编译器 -> 编译器合规级别(当前设置为 1.5,但已尝试 1.6 和 1.7 且未修复)

请帮忙:(

【问题讨论】:

  • 我无法相信它在任何地方都有效;该行在多个级别上都是错误的。
  • 恐怕我不得不不同意你的观点,有很多人在使用这个代码,而且我实际上有一个经过验证的项目,我只是无法让它工作在我当前的项目中。
  • 除非您有自己的名为hashmapstring 的类(这是一个可怕的想法)以及您自己的Java 解析器或者它不是Java 1.5/1.6,否则您没有。将包含它的最小工作项目放在 github 上,并描述它所在的完整环境。
  • 终于让它工作了!由于某种原因,不得不将编译器设置为 1.5 并重新启动我的计算机。但是现在工作。感谢所有输入:)
  • 对于初学者:请注意,在 Android 工具中右键单击项目名称可以找到修复项目属性。

标签: java android eclipse


【解决方案1】:

首先,你应该阅读Java Collections And Generics

ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String,String>>();

并设置合规级别1.6,因为 1.7 尚不兼容。 Java 1.5 给出@Override 注释错误。因为@Override是1.6引入的。

project -> properties -> java compiler -> compiler compliance level->Set it at 1.6 

【讨论】:

  • @Override 在 1.5 中; interface 方法上的@Override 来自 1.6。
  • 感谢您的回复。我已经阅读了集合和泛型,但是将 java 编译器设置为 1.6 并不能解决我的问题。
  • 那么你在mylist代码上面复制了什么问题?
猜你喜欢
  • 2013-06-11
  • 2012-04-27
  • 2016-11-04
  • 2011-11-30
  • 2017-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多