2.0.8版本
小游戏下加载包外大文件json(10MB) ios直接闪退
以下是加载模块的代码
应该是内存分配超过上限了,只能将JSON文件拆分规避问题,这个是属于微信小游戏的问题。
我直接使用微信小游戏的api调用,并不会闪退
使用的接口和creator之间没有关联性,可否提供下复现的demo?
直接调用微信小游戏的 API,没有加载游戏?
同一份json,使用cc.loader.load的方式加载闪退,使用wx.request的方式加载正常。
在进入了游戏的基础上
估计是用到的 API 不太一样。可能 wx 的 JSON 生成对象的过程中内存爆掉了。wx.request 不知道是不是底层复用了比较多的原生内存所以没爆掉。这个建议你们如果有这种特殊需求,就用 wx 原生 API 吧。我们这边很难去解决闪退问题,毕竟底层是微信的,引擎就用 js 实现的没理由会导致应用崩溃。
我们也只能是想办法绕过去了。
不过这种应用场景其实挺常见的,稍微重度点的游戏,数据表都会上到这个量级的。
问题我找到了
以下代码会导致崩溃
wx.request({ url:url, success (res) { var ct = JSON.stringify(res.data); var js = JSON.parse(ct); } })
以下代码不会导致崩溃
wx.request({ url:url, success (res) { var data = res.data; } })
wx.request返回的数据已经是json对象的,引擎是处于什么目的而先进行JSON.stringify再进行JSON.parse这种操作的呢,毫无必要啊
谢谢反馈,这是 adapter 中的代码,这些代码最初是微信提供的,我们并没有进行太多定制。
具体原因可能是跟当初微信缓存的实现机制有关,应该是为了实现深拷贝吧?
我们会再跟进一下这个问题。
ip6p及以下的机型上出现相同问题。
json表量级13MB以上
拆分为单个文件为4MB上下,闪退机率降低。
Creator版本为2.0.10
good job