【UE4】【Android】这个诡异的闪退,你绝对没想到 - TMap添加KeyValue也会闪退?
看图说话:

问题描述:
上图中第一段代码(注释放开)会导致打包成Android后闪退。PIE,打包的Window包都没有问题。AttriChanged是TMap<int32, int64>,pAttr是struct指针。如果Value的类型是int32不会闪退。如果你也需要这种莫名的闪退,不妨参考。
我们先看看完整的代码
修改方法:不要直接将对象字段传入TMap, 在外部定义好对应的类型,将定义好的值传入TMap。
猜测问题:TMap的emplace是泛型参数,在打包Android的时候,参数类型推导除了问题(推不出具体的类型,卡壳了)。所以在函数外明确对象类型,再将该值传入,避免了错误。不仅仅是TMap,再其他模板函数里也遇到过类似的闪退。所以才有这种猜测。
当然,实际崩溃是怎么产生的,目前还不得而知,可能是UE4代码转Android代码导致的,也可能是编译器的问题。希望有了解真相的同学科普下。