今天在開發(fā)一款游戲的時候遇到這個報錯,在這個問題上花費了比較多的時間。
原文連接:http://www.bennyxu.com/index.php/archives/402/
問題定位
起初開始懷疑是因為連接名是中文的原因。所以,就開始了漫長的替換過程,但是替換的時候總覺得不太對。找到其他的也是帶有中文連接名的項目發(fā)現(xiàn)并沒有報這個錯誤。
項目分析
項目是包括加載器和游戲兩個模塊的,而加載器是一個類似的共用模塊,應(yīng)該不是這個的問題。那問題的重點就集中在了游戲模塊上,通過排除法也沒有找到問題的原因。
報錯分析
VerifyError: Error #1107: The ABC data is corrupt, attempt to read out of bounds.
報錯提示是超出了范圍,兩個模塊在單獨運行的時候都是沒有問題的。只是在兩個模塊編譯在一起的時候會報錯。那么就是說兩個模塊有相同的函數(shù),他們的路徑是相同的,但是參數(shù)是不同的。對項目結(jié)構(gòu)重新分析,問題找到了。在兩個模塊中都引用到了tweenlite類庫。簡單的先禁用掉加載器的tweenlite,ok,不再報錯了。
解決方案
找到了問題的原因,接下來就是解決問題了,兩個獨立的模塊是可以都調(diào)用tweenlite的,但是要保證兩個tweenlite是相同的版本,簡單方法就是用同樣的類庫。