我遇到了这个问题。当我启动并重新启动我的应用程序 5 次时,我有内存泄漏。似乎 phonegap 和 Cordova 浏览器在内存中留下了一些对象。
07-28 03:48:01.886: E/dalvikvm(10729): Failed adding to JNI local ref table (has 512 entries)
07-28 03:48:01.895: E/dalvikvm(10729): VM aborting
07-28 03:48:01.895: A/libc(10729): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1)
Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1)
一旦应用程序崩溃,我通常可以再次重新启动应用程序,并且它可以运行其他 5 次。那么我通常如何杀死我的应用程序以便删除内存中的所有 javascript 呢?
// about 116 script elements
que.forEach(function (f, i) {
var s = d.createElement('script');
s.async = false;
s.src = f;
s.onload = function () {
loaded++;
p = loaded / que.length;
//TODO: code for updating progress bar
};
d.body.appendChild(s);
que[i] = s;
});
这也没有解决问题:
for (var i = tags.length; i >= 0; i--){ //search backwards within nodelist for matching elements to remove
if (tags[i] && tags[i].getAttribute('src') != null) {
tags[i].parentNode.removeChild(tags[i]); //remove element by calling parentNode.removeChild()
for (var prop in tags[i]) {
delete tags[i][prop];
}
}
}