Titanium 更新触发事件的TableView时崩溃

Titanium 更新触发事件的TableView时崩溃,titanium,appcelerator,titanium-mobile,appcelerator-mobile,Titanium,Appcelerator,Titanium Mobile,Appcelerator Mobile,我有一个选项卡式Android应用程序,如下所示: 前两个选项卡包含空视图,第三个选项卡包含tableview 我在自定义事件中添加了一个eventlistener,每次触发事件时我都会实时更新他的内容 var tb; function update(){ tb.setData([]); var row = []; var r = Titanium.UI.createTableViewRow(); row.push(r); tb.setDat

我有一个选项卡式Android应用程序,如下所示:

前两个选项卡包含空视图,第三个选项卡包含tableview

我在自定义事件中添加了一个eventlistener,每次触发事件时我都会实时更新他的内容

var tb;

function update(){  
    tb.setData([]); 
    var row = [];
    var r = Titanium.UI.createTableViewRow();   
    row.push(r);
    tb.setData(row);    
    return true;
}

function MainView() {

    self = new ui.View();

    tb = Titanium.UI.createTableView({
          scrollable: false,
          showVerticalScrollIndicator: false,
          top: 10,
          width: "98%",
          //height: perH(0.95) - baseH,
          border: 1,
          borderColor: "gray",
          borderRadius: 6,
    });
    self.add(tb);
    // And i add an event listener to call the update function
    Ti.App.addEventListener( 'updateFav', update );   
    return self;
}   
module.exports = MainView;
每次触发事件时,tableview都会正常更新,并且一切正常

但是如果我点击第一个标签,进入第二个或第三个,应用程序就会崩溃!“已停止”是Android显示的消息

logcat说空指针异常,但我不知道为什么

再次说明:只要将当前选项卡表单第一次更改为第二次或第三次,问题就会出现!仅从第二个变为第三个或反之亦然

有什么建议吗

这就是错误:

[WARN][dalvikvm( 2070)] threadid=1: thread exiting with uncaught exception (group=0xb1f48648)
[ERROR][TiApplication( 2070)] (main) [42854,169668] Sending event: exception on thread: main msg:java.lang.NullPointerException; Titanium 3.1.3,2013/09/18 12:01,222f4d1
[ERROR][TiApplication( 2070)] java.lang.NullPointerException
[ERROR][TiApplication( 2070)]   at android.view.ViewConfiguration.get(ViewConfiguration.java:318)
[ERROR][TiApplication( 2070)]   at android.view.View.<init>(View.java:3264)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.<init>(ViewGroup.java:448)
[ERROR][TiApplication( 2070)]   at ti.modules.titanium.ui.widget.TiImageView.<init>(TiImageView.java:63)
[ERROR][TiApplication( 2070)]   at ti.modules.titanium.ui.widget.TiUIImageView.<init>(TiUIImageView.java:94)
[ERROR][TiApplication( 2070)]   at ti.modules.titanium.ui.ImageViewProxy.createView(ImageViewProxy.java:43)
[ERROR][TiApplication( 2070)]   at org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:452)
[ERROR][TiApplication( 2070)]   at org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:438)
[ERROR][TiApplication( 2070)]   at org.appcelerator.titanium.proxy.TiViewProxy.forceCreateView(TiViewProxy.java:406)
[ERROR][TiApplication( 2070)]   at ti.modules.titanium.ui.widget.tableview.TiTableViewRowProxyItem.createControls(TiTableViewRowProxyItem.java:246)
[ERROR][TiApplication( 2070)]   at ti.modules.titanium.ui.widget.tableview.TiTableViewRowProxyItem.setRowData(TiTableViewRowProxyItem.java:408)
[ERROR][TiApplication( 2070)]   at ti.modules.titanium.ui.widget.tableview.TiTableViewRowProxyItem.setRowData(TiTableViewRowProxyItem.java:90)
[ERROR][TiApplication( 2070)]   at ti.modules.titanium.ui.widget.tableview.TiTableView$TTVListAdapter.getView(TiTableView.java:229)
[ERROR][TiApplication( 2070)]   at android.widget.AbsListView.obtainView(AbsListView.java:2177)
[ERROR][TiApplication( 2070)]   at android.widget.ListView.makeAndAddView(ListView.java:1840)
[ERROR][TiApplication( 2070)]   at android.widget.ListView.fillDown(ListView.java:675)
[ERROR][TiApplication( 2070)]   at android.widget.ListView.fillFromTop(ListView.java:736)
[ERROR][TiApplication( 2070)]   at android.widget.ListView.layoutChildren(ListView.java:1655)
[ERROR][TiApplication( 2070)]   at android.widget.AbsListView.onLayout(AbsListView.java:2012)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
[ERROR][TiApplication( 2070)]   at ti.modules.titanium.ui.widget.tableview.TiTableView.onLayout(TiTableView.java:572)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1388)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
[ERROR][TiApplication( 2070)]   at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
[ERROR][TiApplication( 2070)]   at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
[ERROR][TiApplication( 2070)]   at android.view.View.layout(View.java:14289)
[ERROR][TiApplication( 2070)]   at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][TiApplication( 2070)]   at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1976)
[ERROR][TiApplication( 2070)]   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1730)
[ERROR][TiApplication( 2070)]   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
[ERROR][TiApplication( 2070)]   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481)
[ERROR][TiApplication( 2070)]   at android.view.Choreographer$CallbackRecord.run(Choreographer.j
[ERROR][AndroidRuntime( 2070)] FATAL EXCEPTION: main
[ERROR][AndroidRuntime( 2070)] java.lang.NullPointerException
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewConfiguration.get(ViewConfiguration.java:318)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.<init>(View.java:3264)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.<init>(ViewGroup.java:448)
[ERROR][AndroidRuntime( 2070)]  at ti.modules.titanium.ui.widget.TiImageView.<init>(TiImageView.java:63)
[ERROR][AndroidRuntime( 2070)]  at ti.modules.titanium.ui.widget.TiUIImageView.<init>(TiUIImageView.java:94)
[ERROR][AndroidRuntime( 2070)]  at ti.modules.titanium.ui.ImageViewProxy.createView(ImageViewProxy.java:43)
[ERROR][AndroidRuntime( 2070)]  at org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:452)
[ERROR][AndroidRuntime( 2070)]  at org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:438)
[ERROR][AndroidRuntime( 2070)]  at org.appcelerator.titanium.proxy.TiViewProxy.forceCreateView(TiViewProxy.java:406)
[ERROR][AndroidRuntime( 2070)]  at ti.modules.titanium.ui.widget.tableview.TiTableViewRowProxyItem.createControls(TiTableViewRowProxyItem.java:246)
[ERROR][AndroidRuntime( 2070)]  at ti.modules.titanium.ui.widget.tableview.TiTableViewRowProxyItem.setRowData(TiTableViewRowProxyItem.java:408)
[ERROR][AndroidRuntime( 2070)]  at ti.modules.titanium.ui.widget.tableview.TiTableViewRowProxyItem.setRowData(TiTableViewRowProxyItem.java:90)
[ERROR][AndroidRuntime( 2070)]  at ti.modules.titanium.ui.widget.tableview.TiTableView$TTVListAdapter.getView(TiTableView.java:229)
[ERROR][AndroidRuntime( 2070)]  at android.widget.AbsListView.obtainView(AbsListView.java:2177)
[ERROR][AndroidRuntime( 2070)]  at android.widget.ListView.makeAndAddView(ListView.java:1840)
[ERROR][AndroidRuntime( 2070)]  at android.widget.ListView.fillDown(ListView.java:675)
[ERROR][AndroidRuntime( 2070)]  at android.widget.ListView.fillFromTop(ListView.java:736)
[ERROR][AndroidRuntime( 2070)]  at android.widget.ListView.layoutChildren(ListView.java:1655)
[ERROR][AndroidRuntime( 2070)]  at android.widget.AbsListView.onLayout(AbsListView.java:2012)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
[ERROR][AndroidRuntime( 2070)]  at ti.modules.titanium.ui.widget.tableview.TiTableView.onLayout(TiTableView.java:572)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1388)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
[ERROR][AndroidRuntime( 2070)]  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
[ERROR][AndroidRuntime( 2070)]  at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
[ERROR][AndroidRuntime( 2070)]  at android.view.View.layout(View.java:14289)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewGroup.layout(ViewGroup.java:4562)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1976)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1730)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
[ERROR][AndroidRuntime( 2070)]  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481)
[ERROR][AndroidRuntime( 2070)]  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
[ERROR][AndroidRuntime( 2070)]  at android.view.Choreographer.doCallbacks(Choreographer.java:562)
[ERROR][AndroidRuntime( 2070)]  at android.view.Choreographer.doFrame(C

我建议尝试将log语句放入update方法和MainView方法中,以查看调用的顺序。在update方法中,尝试在运行任何操作之前打印tb值。