Почему появляется NPE?
А еще Вы половину строк теряете...while(rd.readLine() != null) {    // прочитали 1-ю (3,5,7...) строку и сравнили с null
  html.add(rd.readLine());        // прочитали 2-ю (4,6,8...) строку и добавили в массив
}
А если строк было нечетное кол-во, последний элемент массива будет null...
Добавьте проверку на ноль. JavaDoc, StackoverflowString htmlTag = htmlArray.get(i);
if (htmlTag != null && htmlTag.contains(strSourceTag))                         ///вот тут нпе
    arrayPoimey.add(htmlTag);