開發環境: FlashDevelop + AIR SDK 15
問題:存入私有類別的屬性值與實際寫入位址不一致
解決方式:更改此私有類別命名使其為唯一
最近開發的一個AIR專案出現了一個詭異的狀況,
原本在debug模式輸出下執行都一切正常,
但到了release輸出後都會在執行特定動作時應用崩潰Crash(無預警自動關閉),
且因為是release模式所以除錯特別麻煩,
經過多次切割分析後,
發現在使用私有類別(定義於類別檔中的不公開類別)參數存取時,
竟然會發生存入的類別屬性與實際寫入位址不一致。
例如定義一個私有類別為:
class GameRes {
public var fooA:String;
public var fooB:String;
}
在測試程式碼中將「字串"ABC"」寫入第一個參數 (fooA):
obj.fooA = "ABC";
結果在release輸出中 「字串"ABC"」居然被指定入了第二個參數(fooB)。
由於此類別所使用的命名「GameRes」在其他檔案中也有使用,
因此我判斷可能是相同的命名所造成編譯混淆,
所以在更改了此私有類別命名使其為唯一之後 參數存取就正常了。
訂閱:
張貼留言 (Atom)
[Unity] Odin Inspector DateTime 時間屬性繪製
Odin Inspector 是一個有名的Unity Inspector Plugin,但沒有為 DateTime 建立可編輯的可視化介面,這邊簡單提供一個可用的方法 。 Odin Inspector 版本 : 3.3.1.14
-
IP Messenger 4.99r3 繁體中文版 介紹:方便區網內傳輸的小工具,又名飛鴿傳書。 支援文字、圖片、檔案、資料夾點對點傳輸。
-
使用環境 : Visual Studio Community 2019 錯誤訊息 : 錯誤 NETSDK1004 找不到資產檔案 '...\obj\project.assets.json'。請執行 NuGet 套件還原,以產生此檔案。
-
Cocos Creator 編譯Android APK失敗的可能原因 Execution failed for task Cocos Creator 版本: 2.3.1 NDK版本:r21 Android SDK:29 編譯方式: default 問題: Windows...
沒有留言:
張貼留言