Я рекомендую переместить следующий код внутрь try catch:
songname.setText(nextSongname.get(index+counter));
artistname.setText(nextArtistname.get(index+counter));
albumname.setText(nextAlbumname.get(index+counter));
path = nextPathname.get(index+counter);
artworkimageview.setImageURI(newuri);
... возможно, вы получаете: index вне диапазона исключений.
Другое рекомендацияпроверьте путь на наличие пробелов или ноль перед воспроизведением аудио.(образец в C #)
if(!string.IsNullOrWhiteSpace(path))
playAudio(path);
Примечание: j
не используется.