Я попробовал ваш код, и он отлично работает для меня, добавив преференцию программно следующим образом:
AppSelectorPreference pref2 = new AppSelectorPreference(this, null);
getPreferenceScreen().addPreference(pref2);
и используя xml, как вы написали. Какая строка 169, где появляется ошибка?
Кроме того, вы просматривали logcat, чтобы увидеть, дает ли какое-либо из названий приложений или меток что-то вроде нуля? Единственное, о чем я могу думать, это то, что на вашем андроиде есть приложения, отличные от моих.
Редактировать: Извините, я снова проверил, и теперь я получил ту же ошибку, что и вы. Не уверен, что я сделал иначе, кроме выбора значения
Однако я исправил это, переопределив метод findIndexOfValue. Я просто сделал это, чтобы проверить:
@Override
public int findIndexOfValue(String value) {
return 0;
//return super.findIndexOfValue(value);
}
но, конечно, вам нужно реализовать findind индекс для этого значения. Может быть ошибка Android для очень больших массивов записей?