0

我在做这个项目(一个可怕的项目,在交给我们之前有一个完整的程序超臭代码是其他社会生产的)。

我们有一个原生的 Android 模块,一个 Carousel。轮播的每个元素都可以被点击,从而触发相应的动作。

从逻辑上讲,我们只是在 Titanium 中的实例化模块上添加了一个 addEventListener,它在我们第一次启动应用程序时就可以完全工作。但是一旦我们退出并重新启动应用程序,我们就会得到一个错误Object [Object Carousel] has no method addEventListener

我不明白为什么。如果它第一次工作,它应该工作第二次。是否存在某种错误的记忆?还是垃圾回收失败?这是我们在 Titanium 中用于处理此逻辑的代码:

function some_func() {
  CF_container = null;
  var my_module = require('com.xxxx.carousel');
  CF_container = my_module.createView();
  CF_container.addEventListener('IZ_itemClicked', function(data) {
    evts_CF_click(data.id);
  });
  return CF_container;
}
4

1 回答 1

1

我怀疑问题出在该代码上。当我在每行末尾没有分号的代码写得很糟糕时,我遇到了类似的问题。在我加载一个模块然后开始出现错误之前,这一切似乎都很好,但只是有时。我在 Titanium Studio 中打开了 JavaScript 验证(Preferences > Titanium Studio > Validation > JavaScript - Everything by JSLint and Android UTF-8 Verifier)并修复了所有 js 文件中的所有错误。一旦你在任何地方都得到了正确的语法,我怀疑问题就会消失。

于 2012-07-17T20:08:54.080 回答