Rupesh rathod Ответов: 2

Как мне ... решить эту ошибку в музыкальном проигрывателе


Caused by: java.lang.NullPointerException: Attempt to get length of null array
                                                      at com.example.mahakal.musicplayer.SongsManager.getPlayList(SongsManager.java:25)


Что я уже пробовал:

<pre>public ArrayList<HashMap<String, String>> getPlayList(){
        File home = new File(MEDIA_PATH);

        if (home.listFiles(new FileExtensionFilter()).length > 0) {
            for (File file : home.listFiles(new FileExtensionFilter())) {
                HashMap<String, String> song = new HashMap<String, String>();
                song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
                song.put("songPath", file.getPath());

                // Adding each song to SongList
                songsList.add(song);
            }
        }
        // return songs list array
        return songsList;
    }

2 Ответов

Рейтинг:
2

Jochen Arndt

Было бы хорошо знать, на какой линии произошло исполнение.

Если это на первом if состояние, listFiles() вернул null. Видеть Файл (Java Platform SE 7 )[^]:

Цитата:
Возвращает null, если это абстрактное имя пути не обозначает каталог или если происходит ошибка ввода-вывода.

Так что проверьте, если MEDIA_PATH это существующий и читаемый каталог.


Рейтинг:
1

Patrice T

Цитата:
Вызванные: Java для.яз.NullPointerException: попытка получить длину нулевого массива

Что-то не удалось в вашем коде, и только вы можете что-то сделать, потому что мы не можем догадаться, где проблема из нашего удаленного места.
Используйте отладчик, чтобы увидеть, как выполняется ваш код, и увидеть, где он не помещает данные в вашу переменную.

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.