VerifyError:错误#1053:(类)中的(构造函数)非法覆盖

时间:2013-11-26 21:34:30

标签: actionscript-3 flash flash-builder robotlegs

我正在使用Flash Builder 4.7,而且我遇到了一个奇怪的问题,我没有对这个类进行任何更改:

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。没有改变错误。

此时,我们将非常感谢任何其他建议!

感谢您的时间。

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

更新:我已经能够解决这个问题,我已经在下面的答案中概述了我的所作所为。我仍然对任何人对如何发生这种情况的想法或想法感兴趣,或者可能是一个更具体的解决方案。

再次感谢所有花时间查看此问题的人!

2 个答案:

答案 0 :(得分:4)

这似乎是由编译器未检测到的接口的错误实现引起的。以下代码剪切导致错误:

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

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

问题是由IFoo.bar是一个吸气剂,但Foo.bar()是一种常规方法。这是一种在查看代码时很容易错过的错误,如果您删除并重写所有内容,这将会被修复。

答案 1 :(得分:0)

我仍然不知道为什么会这样或者如何发生。但是,我能够让它再次运作。

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

奇怪的是,在一次恢复一个方法并且每次都进行测试之后,它现在可以正常工作。

该类(基本上,代码可能略有不同)也是如此,现在它可以工作。

我仍然感到困惑,但至少我现在可以继续前进。

希望这可以帮助某个人。