Я не знаю, собираетесь ли вы это делать, но вы добавляете каждую строку URL-адресов (?) Из текстового файла, который вы читаете, в StringBuffer, а затем назначаете URL-адреса, считанные до сих пор, для imageUrl. Это означает, что вы в основном делаете это:
imageUrl = URL1
imageUrl = URL1, URL2
...
imageUrl = URL1, URL2, ... URLn
Возможно, это вызывает проблемы с памятью.