I'm a new app developer who's in the process of developing a simple Android application using Titanium Studio. I'm trying to implement an RSS feed in one of my windows, but I keep getting the following error messages when I run the app on my device:
[ERROR] : TiExceptionHandler: (main) [107,107] ----- Titanium Javascript Runtime Error -----
[ERROR] : TiExceptionHandler: (main) [0,107] - In ui/common/NewsWindow.js:1,69
[ERROR] : TiExceptionHandler: (main) [0,107] - Message: Uncaught TypeError: Cannot call method 'add' of null [ERROR] : TiExceptionHandler: (main) [0,107] - Source: fontSize:14},message:"Loading...",style:style,top:20,left:100});win.add(activi
[ERROR] : V8Exception: Exception occurred at ui/common/NewsWindow.js:1: Uncaught TypeError: Cannot call method 'add' of null

The code for my NewsWindow.js file is below. Any help would be greatly appreciated!
Code:
var win = Titanium.UI.currentWindow;
 
 
var style;
if (Ti.Platform.name === 'iPhone OS'){
    style = Ti.UI.iPhone.ActivityIndicatorStyle.DARK;
} else {
    style = Ti.UI.ActivityIndicatorStyle.DARK;
}
var activityIndicator = Ti.UI.createActivityIndicator({
    color: 'black',
    font: {fontFamily:'Helvetica Neue', fontSize:14},
    message: 'Loading...',
    style: style,
    top: 20,
    left: 100
});
win.add(activityIndicator);
activityIndicator.show();
 
var xmlFeed = 'http://feeds.bbci.co.uk/news/video_and_audio/news_front_page/rss.xml?edition=uk#';
 
var xhr = Ti.Network.createHTTPClient();
 
xhr.onload = function()
{
 
activityIndicator.hide();
 
    var xml = this.responseXML;
 
 
    Ti.API.info(this.responseText);
 
 
    var channelTitle = xml.documentElement.getElementsByTagName("title").item(0).textContent;
 
 
    var channelLabel = Ti.UI.createLabel({
        top: 20,
        text: channelTitle,
        color: '#39f'
    });
    win.add(channelLabel);
 
 
    var data = [];
 
 
    var itemsTable = Ti.UI.createTableView({
        top: 70,
        left: 0
    });
    win.add(itemsTable);    
 
 
    var items = xml.documentElement.getElementsByTagName("item");
 
 
    for(var i = 0; i < items.length; i++)
    {
        // create a table row for each item
        var row = Ti.UI.createTableViewRow({
            title: items.item(i).getElementsByTagName("title").item(0).textContent,
            link: items.item(i).getElementsByTagName("link").item(0).textContent,
            height: 'auto',
            hasChild: true
        });
 
 
        data.push(row);
    }
 
    // bind the data to the itemsTable
    itemsTable.data = data;
 
    // when the user clicks on a row
    itemsTable.addEventListener('click', function(e)
    {
        // create and open a new window 
        var webView = Titanium.UI.createWebView({ 
            backgroundColor:'#fff',
            url: e.rowData.link         
        }); 
        var newWindow = Titanium.UI.createWindow({
            backgroundColor:'#fff',
            backButtonTitle: 'Back',
            title: e.source.title, 
        }); 
        newWindow.add(webView);
        Ti.UI.currentTab.open(newWindow);   
    });
 
};
 
xhr.onerror = function()
{
 
    activityIndicator.hide();
 
    alert(this.status + ': ' + this.statusText);
    return false;
};
 
// open the remote feed
xhr.open('GET', xmlFeed);
 
// execute the call to the remote feed
xhr.send();