“项目名称”经过优化编译
Posted
技术标签:
【中文标题】“项目名称”经过优化编译【英文标题】:"Project Name" was compiled with optimization 【发布时间】:2018-04-11 21:39:47 【问题描述】:我使用 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
【问题讨论】:
我不了解统一,但如果您通过 Xcode 安装/运行但运行方案的配置设置为发布而不是调试(运行方案的配置默认是debug,但可以改为release)。你确定它真的崩溃了。 @Gruntcakes 你的意思是当我将游戏发布到应用商店时我不会看到这个错误? 没有。该消息实际上与应用程序无关,它来自 Xcode,当您尝试交互式调试应用程序时。在此处查看第二个答案:***.com/questions/32772573/… 请注意,这不是错误,只是一条日志消息。如果您的应用崩溃是由于不相关的原因(当您在 App Store 中发布游戏时可能仍然会发生) @dan 我在 android 中没有这个问题!或者在我玩的时候在电脑上。它恰好在日志中显示此错误时发生。 【参考方案1】:虽然似乎为时已晚,但我只是遇到了类似的问题并在这里分享解决方案。
原因
在我的例子中,使用过多内存的应用程序会导致测试设备崩溃。您可以使用更好的设备对其进行测试。我的应用程序在 iPhone7 中崩溃,但在 iPhone7 Plus 中没有。也可以在左侧的Memory一栏中查看。
解决方案
如果加载场景时应用程序崩溃,这里是解决方案或建议。
假设有 2 个场景,A 和 B。它们都需要 1GB 内存。
A -> B 时,A 会在 B 加载完毕后销毁,也就是说 A + B 时需要 2GB。对于移动来说太重了。
所以我添加场景 C,中间件占用 0.1GB 内存。
现在我通过 A -> C -> B 进入场景 B。
A + C 请求 1.1GB,然后场景 A 释放。
之后,C -> B 请求 1.1GB。
从 A 到 B 加载场景的最大内存从 2GB 减少到 1.1GB。它解决了我的应用程序崩溃问题。希望对您有所帮助。
【讨论】:
以上是关于“项目名称”经过优化编译的主要内容,如果未能解决你的问题,请参考以下文章