Steps to reproduce:
1. Use the code below in your app.js:
var window = Ti.UI.createWindow(),
    tableView = Ti.UI.createTableView(),
    start = Ti.UI.createButton({
        title: 'START',
        left: '10dp',
        bottom: '10dp',
    });
start.addEventListener('click', function(e) {
    Ti.Media.openPhotoGallery({
        allowMultiple: true,
        allowEditing: false,
        autohide: true,
        mediaTypes: Ti.Media.MEDIA_TYPE_PHOTO,
        success: function(e) {
        
            for (let i in e.images) {
                var row = Ti.UI.createTableViewRow({title: e.images[i].media.file.name});
                row.addEventListener('click', function() {
                    var child = Ti.UI.createWindow();
                    child.add(Ti.UI.createImageView({
                        image: e.images[i].media
                    }));
                    child.addEventListener('open', function(){
                        setTimeout(() => { child.close() }, 1000);
                    });
                    child.open();
                });
                tableView.appendRow(row);
            }
        }
    });
});
window.add([tableView, start]);
window.open();
2. Build for android device with lesser ram like Nexus 5.
3. After the app launch tap start & select photos from the device.
4. They will appear in a tableview.
5. Tap each tableviewrow to open the image.
6. Image should open in an imageview & close after a timeout of 1000ms i.e 1 sec.
7. Continue doing this for few trys.
Actual results:
1. We see an app crash & error :
[ERROR] :  JavaObject: !!! OH NO! We tried to move a weak Java object back to strong, but it's aleady been GC'd by JVM! We're in a bad state! Key: 1449486177
2. According to [~gmathews], this can be improved by improving the imageview cache.
Expected result:
1. The app should not crash & the images should keep opening in the imageview.
 
No comments