安卓微信音频内存泄漏

  • Creator 版本: 2.4.11、2.4.12、2.4.13都测试过

  • 目标平台: 微信小游戏-安卓端

我的游戏是找茬类游戏,有上百个关卡,且每个关卡内的音频资源都不同,我的策略是进入关卡就加载其所需资源(图片、音频),退出关卡就释放资源;

在微信云测试上发现大部分安卓设备的内存峰值都超过了建议值,但是所有iOS设备都正常;
如下图所示,native内存持续上涨


一番排查后发现跟音频相关,我是通过将关卡的音频资源全部干掉后又提交了云测试,native内存曲线就稳定了;

写个简单的 demoDemo.zip (2.1 MB) ,通过微信开发工具的memory检查发现以下情况:
1.第一次加载音频,内存快照中的audio对象是1,不将其释放,再次加载同一个音频,内存快照中的audio对象数量还是1,这时正常
2.第一次加载音频,内存快照中的audio对象是1,将其释放(注意,释放!),再次加载同一个音频,内存快照中的audio对象是2,这时出现内存泄露

我游戏的关卡资源加载逻辑就如同第2种情况,进入关卡就加载资源,退出关卡就将资源释放,但音频资源的内存不仅无法释放掉,再次进入关卡后内存会越积越多

另外,上述情况中,图片资源是可以正常释放掉的

1赞

@jare

@panda

@valiancer

自顶 别沉啦

顶一个,同问

顶一个 同问,等解答

同问,求个官方解答

关注中。。。

老哥,你@ 的人已经跑路了,音频泄露的问题在3.x修复了,或者自己业务层记录下引用,再释放

问题是音频释放不掉啊 :cold_sweat: 现在 2.4.x的版本是谁在维护啊?

2.x官方停更了,有需要的话付费支持,可以联系小秘书

怎么联系小秘书呢?

哥,你看看你@的三个人:
产品总监大大:已离职
技术总监大大:已离职切且被动陷入纠纷
我?非官方人员的一个渣渣,啥也不会

你真的@官方人员的话,会不会劝你升级版本?
我的建议是:确定是引擎bug的话,跟下引擎代码,看看是否能改?不能改的话,那使用微信小游戏官方的api来控制声音?

2.x原生版有很多内存泄漏
Creator2.x 引擎原生端内存泄漏崩溃BUG (骨骼动画、websocket) - Creator 2.x - Cocos中文社区

谢谢你的建议

好的 我看看

最后是怎么解决的呀