欢迎光临散文网 会员登陆 & 注册

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

2022-05-10 12:06 作者:天空游荡的鱼  | 我要投稿

    看图说话:

你敢信,这代码会导致闪退

问题描述

    上图中第一段代码(注释放开)会导致打包成Android后闪退。PIE,打包的Window包都没有问题。AttriChanged是TMap<int32, int64>,pAttr是struct指针。如果Value的类型是int32不会闪退。如果你也需要这种莫名的闪退,不妨参考。

    我们先看看完整的代码

       修改方法:不要直接将对象字段传入TMap, 在外部定义好对应的类型,将定义好的值传入TMap。

        猜测问题:TMap的emplace是泛型参数,在打包Android的时候,参数类型推导除了问题(推不出具体的类型,卡壳了)。所以在函数外明确对象类型,再将该值传入,避免了错误。不仅仅是TMap,再其他模板函数里也遇到过类似的闪退。所以才有这种猜测。

        当然,实际崩溃是怎么产生的,目前还不得而知,可能是UE4代码转Android代码导致的,也可能是编译器的问题。希望有了解真相的同学科普下。

【UE4】【Android】这个诡异的闪退,你绝对没想到 - TMap添加KeyValue也会闪退?的评论 (共 条)

分享到微博请遵守国家法律