[我使用Unity for iOS创建游戏。当Xcode升级到9.3时,有时我在游戏中时项目会因此错误而崩溃:
经过优化编译-步进的行为可能会很奇怪;变数 可能不可用。
我进行了搜索,找到了许多解决此问题的方法,但仍然可以解决。我没有使用优化,而是取消了统一设置中的代码条。
任何想法我该如何解决?!
更新:
另一种信息
ShouldUpdateTransformBefore():
0x100f9c064 <+0>: ldr x8, [x0] 0x100f9c068 <+4>: ldr x9, [x1] 0x100f9c06c <+8>: cmp x8, x9 0x100f9c070 <+12>: b.eq 0x100f9c07c ; <+24> at RectTransform.cpp:319 0x100f9c074 <+16>: cset w0, lo 0x100f9c078 <+20>: ret 0x100f9c07c <+24>: ldr w9, [x1, #0x8] 0x100f9c080 <+28>: cmn w9, #0x1 ; =0x1 0x100f9c084 <+32>: b.eq 0x100f9c0a4 ; <+64> at RectTransform.cpp:320 0x100f9c088 <+36>: ldr w10, [x0, #0x8] 0x100f9c08c <+40>: cmp w9, w10 0x100f9c090 <+44>: b.eq 0x100f9c0ac ; <+72> at RectTransform.cpp:327
-> 0x100f9c094 :ldr x11,[x8,#0x10]
0x100f9c098 <+52>: ldr w9, [x11, w9, sxtw #2] 0x100f9c09c <+56>: cmn w9, #0x1 ; =0x1 0x100f9c0a0 <+60>: b.ne 0x100f9c08c ; <+40> at RectTransform.cpp:322 0x100f9c0a4 <+64>: mov w0, #0x0 0x100f9c0a8 <+68>: ret 0x100f9c0ac <+72>: orr w0, wzr, #0x1 0x100f9c0b0 <+76>: ret
虽然似乎为时已晚,但我只是面临类似的问题并在此处分享解决方案。
原因
就我而言,应用程序使用太多内存会导致测试设备崩溃。您可以使用更好的设备对其进行测试。我的应用程序在iPhone7中崩溃,但在iPhone7 Plus中没有崩溃。您也可以在左侧的“内存”列中对其进行检查。
解决方案>>
如果加载场景时应用程序崩溃,这是解决方法或建议。
假设有两个场景,A和B。它们都消耗1GB的内存。
[当A-> B时,加载B后A将被销毁,这意味着当A + B时需要2GB。对于移动设备来说太重了。
因此,我添加了场景C,中间件的成本为0.1GB。
现在我通过A-> C-> B进入场景B。
A + C请求1.1GB,然后释放场景A。
[之后,C-> B请求1.1GB。
加载场景的最大内存从A到B从2GB减少到1.1GB。它解决了我的应用程序崩溃的问题。希望对您有所帮助。