2013-11-26 51 views
0

我正在使用Flash Builder 4.7,并且遇到了一个奇怪的问题,没有对我得到的类进行任何更改:VerifyError:错误#1053:非法覆盖(Class)中的(构造函数)

VerifyError: Error #1053: Illegal override of HUDScreen in mobile_ui.screens.HUDScreen. 

该类扩展了Sprite,并实现了一个接口。据我所知,界面中的所有方法都有适当的原型。此类中没有重写的属性或函数。我们也使用robotlegs进行依赖注入,如果这是相关的。

类定义

public class HUDScreen extends Sprite implements IHUDScreen 
{ 
} 

构造

public function HUDScreen() 
{ 

} 

接口定义

public interface IHUDScreen extends IEventDispatcher 
{ 

} 

我试图清理项目,我已经删除并重新导入项目,我已将包从ui.screens.HUDScreen更改为mobile_ui.screens.HUDScreen。没有什么改变了错误。

任何其他建议此时将不胜感激!

谢谢你的时间。

编辑:我添加了类定义,接口定义和构造函数。

更新:我已经能够通过这个问题,我已经概述了我在下面的答案中做了什么。我仍然对任何人的想法或想法感兴趣,或者可能是更具体的解决方案。

再次感谢大家谁花时间来查看这个问题!

+0

我们需要查看代码才能提供帮助。至少,我们需要查看类定义以及HUDScreen方法定义。 –

+0

我已经添加了你所要求的东西,我不确定他们是否会对情况有所了解。我不能发布更多,因为它是一个相当大的类,它是私人代码。希望这给你一些工作。感谢您花时间阅读我的文章。 –

+0

您是否尝试使用早期版本的Flash Builder或早期的FP兼容性构建? – Vesper

回答

3

看来这是由于编译器检测不到的接口的错误实现引起的。剪断下面的代码会导致该错误:

public class Foo implements IFoo 
{ 
    public function bar():String { return ""; } 
} 

public interface IFoo 
{ 
    function get bar():String; 
} 

问题是由以下事实:IFoo.bar是吸气引起的,但Foo.bar()是通常的方法。这是一种在查看代码时很容易漏掉的错误,如果你删除并重写所有内容,这个错误将会被修复。

+0

这是真正帮助我的答案。我在课堂上有一些功能是getter,但不应该按照类实现的接口。 – frankhermes

+0

我将此设置为接受的答案,因为它比我自己的答案更有建设性。我没有再遇到这个问题。 –

0

我仍然不知道为什么会这样或如何。但是,我能够重新开始工作。

我的想法是从类中删除所有的方法,并为接口中的所有方法添加存根。然后,逐个添加实际的方法,直到我可以看到问题发生的位置。

奇怪的是,在每次恢复一个方法之后,每次都测试一下,现在就起作用了。

这个类(基本上,代码可能布置略有不同)相同,现在它的工作。

我还是很惊讶,但至少现在我可以继续前进。

希望这可以帮助别人的地方。

+0

我有这个错误,因为stageSync或stageObserver扩展。不记得 – ThanksBro

+0

我相信我们正在使用其中的一个,如果这个问题再次出现,我会研究它。感谢您的建议! –