2013-11-26 27 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

我相信我們正在使用其中的一個,如果這個問題再次出現,我會研究它。感謝您的建議! –