#android #android-mediaplayer
#Android #android-mediaplayer
Вопрос:
Я пытаюсь установить песню на MediaPlayer с помощью URL, но по какой-то причине я продолжаю получать такую ошибку:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.setDataSource(java.lang.String)' on a null object reference
at com.example.musicplayerjd.PlayerActivity.getIntentMethod(PlayerActivity.java:490)
at com.example.musicplayerjd.PlayerActivity.onCreate(PlayerActivity.java:56)
at android.app.Activity.performCreate(Activity.java:7893)
at android.app.Activity.performCreate(Activity.java:7880)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3283)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3457)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7562)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
2020-12-25 18:22:29.435 1628-2212/? E/InputDispatcher: channel 'b9823c3
com.example.musicplayerjd/com.example.musicplayerjd.MainActivity (server)' ~ Channel is
unrecoverably broken and will be disposed!
Не могу понять, почему он говорит, что он ссылается на нулевой объект. Я много раз проверял, что данные, которые я вставляю в него, не равны нулю.
Я вставляю этот URL https://www.hrupin.com/wp-content/uploads/mp3/testsong_20_sec.mp3
-адрес, и каждый раз, когда я пытаюсь воспроизвести музыку, он выходит из строя с этим сообщением об ошибке.
Это код — простой код
mediaPlayer.setDataSource(listSongs.get(position).getURL());
mediaPlayer.prepareAsync();
mediaPlayer.start();
* ListSongs содержит список URL-адресов
Ответ №1:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.setDataSource(java.lang.String)' on a null object reference
at com.example.musicplayerjd.PlayerActivity.getIntentMethod(PlayerActivity.java:490)
Этот сбой означает, что ваш объект MediaPlayer имеет значение null, а не аргумент setDataSource . Пожалуйста, правильно инициализируйте медиаплеер.
Комментарии:
1. это странно, потому что я инициализирую его
mediaPlayer = MediaPlayer.create(getApplicationContext(), listSongs.get(position).getSongId());
, поэтому я не уверен, что я делаю неправильно..