Titanium 内存问题:dalvikvm堆:xxxxx字节分配的内存不足

Titanium 内存问题:dalvikvm堆:xxxxx字节分配的内存不足,titanium,titanium-mobile,titanium-alloy,Titanium,Titanium Mobile,Titanium Alloy,当打开包含tableview的重量级窗口时,我遇到以下内存错误 前10-15次打开/关闭都没问题,但之后我会继续得到以下信息: I/dalvikvm-heap(22638): Forcing collection of SoftReferences for 5030656-byte allocation D/dalvikvm(22638): GC_BEFORE_OOM freed <1K, 10% free 116152K/128624K, paused 91ms, total 91ms

当打开包含tableview的重量级窗口时,我遇到以下内存错误

前10-15次打开/关闭都没问题,但之后我会继续得到以下信息:

I/dalvikvm-heap(22638): Forcing collection of SoftReferences for 5030656-byte allocation
D/dalvikvm(22638): GC_BEFORE_OOM freed <1K, 10% free 116152K/128624K, paused 91ms, total 91ms
E/dalvikvm-heap(22638): Out of memory on a 5030656-byte allocation.
这是我做错了还是钛有问题


我正在运行钛合金3.1.3GA,请尝试将控制器中的代码更改为:

$.Storyboard.close();

$.Storyboard.addEventListener('close', function() {
    $.destroy();
});

在事件侦听器外部调用destroy()可能太晚。

只有在使用模型视图绑定时才应该使用
destroy
函数(从代码上看,似乎不是这样)

destroy
删除附加到控制器的事件侦听器,这些侦听器包含对全局模型和集合的引用(防止内存泄漏),当您关闭窗口时,您已经销毁了任何此类引用(但主要是因为您未使用模型视图绑定)


所以不要调用
$。destroy

destroy()是您自己的方法吗?这是没有证件的,不是吗?它的用途是什么?@mwfire-这是一个有文档记录的方法,正如您上面所说,我已经将我的
$.destroy()
移动到eventlistener中,但我仍然遇到了同样的问题。我可以看到,当毁灭事件被称为它。如果你想的话,我也上传了我的代码,谢谢,但是有/没有
$。destory
我仍然收到内存警告。窗口打开得很好,窗口中的其他项目也在,唯一无法加载的是TableView。您是否在某处设置了Alloy.Globals.Device?Ti.API.info()创建$.table.width,或通过它进行调试。此外,如果是这种情况,那么您的内存错误不是来自destroy()。是的,它在alloy.js中设置,
alloy.Globals.Device
似乎工作正常,因为我在整个应用程序中使用它来确定元素的宽度/高度。问题似乎在于,当tableview试图在viewWell上渲染时,会发生一些奇怪的事情,例如,在ScrollView中嵌套tableview(糟糕的做法),有一个依赖于先前实例化数据(getStoryBoard)的全局控制器函数,在创建表后使用appendRow,任何一种情况都可能导致问题,包括渲染问题和内存泄漏。
$.Storyboard.close();

$.Storyboard.addEventListener('close', function() {
    $.destroy();
});