【UE4】【Android】這個詭異的閃退,你絕對沒想到 - TMap添加KeyValue也會閃退?
????看圖說話:

問題描述:
????上圖中第一段代碼(注釋放開)會導(dǎo)致打包成Android后閃退。PIE,打包的Window包都沒有問題。AttriChanged是TMap<int32, int64>,pAttr是struct指針。如果Value的類型是int32不會閃退。如果你也需要這種莫名的閃退,不妨參考。
????我們先看看完整的代碼
? ?????修改方法:不要直接將對象字段傳入TMap, 在外部定義好對應(yīng)的類型,將定義好的值傳入TMap。
????????猜測問題:TMap的emplace是泛型參數(shù),在打包Android的時候,參數(shù)類型推導(dǎo)除了問題(推不出具體的類型,卡殼了)。所以在函數(shù)外明確對象類型,再將該值傳入,避免了錯誤。不僅僅是TMap,再其他模板函數(shù)里也遇到過類似的閃退。所以才有這種猜測。
????????當(dāng)然,實際崩潰是怎么產(chǎn)生的,目前還不得而知,可能是UE4代碼轉(zhuǎn)Android代碼導(dǎo)致的,也可能是編譯器的問題。希望有了解真相的同學(xué)科普下。
標(biāo)簽: