2011-09-20 114 views
3

我有一个奇怪的问题。Android @Overrride在一台机器上工作,但不是另一台机器

在我的电脑上我有一个在几个地方使用的@Override的Android应用程序。当我将相同的项目复制到我的笔记本电脑上时,每个@Override都出现错误。

该方法必须重写超类方法。它如何在一台机器上运行,而不是另一台机器上运行?

@Override 
public boolean OnMenuItemClick(Menu Item){ 
} 
+0

如果我采取覆盖出的实际应用程序在笔记本电脑上工作正常,但我仍然想知道为什么 – Beginner

+0

我的猜测是,在PC上被覆盖的函数不会被调用。 – ajacian81

+0

只是做1)。项目 - >清理2)。设置java编译器1.6 –

回答

3

很可能您的编译器合规性级别设置为1.5,应该设置为1.6。 转到窗口 - >首选项 - > Java - >编译器,并检查合规性级别是否设置为1.6。 同时检查项目特定设置,右键单击项目并选择属性 - > Java编译器。如果项目特定设置已启用,请选择1.6。

清理项目并重试。

1

尝试去窗口 - >首选项 - >爪哇 - >编译器 - >错误/警告,从下拉菜单中你的笔记本电脑

找到你的情况下(约覆盖),然后选择“忽略”

也许有一些配置显示错误

+0

它在两台机器上都是相同的,我比较它们 – Beginner

0

在这两台机器上是否有相同版本的Java SDK,Android SDK和库?您可能正在重写尚未在您的PC版Java或Android或其他库中实现的方法。

+0

Erm在机器上检查这个最简单的方法是什么? – Beginner

0

注释@Override

表示一个方法声明打算重写超类中的方法 声明。如果使用此注释类型注释了方法但未覆盖超类方法,则编译器 需要生成错误消息。

此外,从版本1.6此注释也用于那些对接口中实现的方法。

也许你在机器上有不同版本的SKD,为什么显示错误。您应该修改代码并找出缺少的内容,而不是删除警告。

相关问题