0

Recently I changed my smartphone to Xiaomi Redmi Note 7 (Android 9) and wanted to test one of my applications on it. The application does not start because there is some problem with MediaPlayer. Which does not appear on any smartphone or tablet on which I tested the application(even on much weaker than note 7). However, they all worked on the older version of the android.

Errors:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: aaa.aaa.aa, PID: 25635
              java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.setOnCompletionListener(android.media.MediaPlayer$OnCompletionListener)' on a null object reference
                  at aaa.aaa.aa.MyActivity.prepare_media_minigun(MyActivity.java:6789)
                  at aaa.aaa.aa.MyActivity.onClick(MyActivity.java:4176)
                  at android.view.View.performClick(View.java:6608)
                  at android.view.View.performClickInternal(View.java:6585)
                  at android.view.View.access$3100(View.java:785)
                  at android.view.View$PerformClick.run(View.java:25921)
                  at android.os.Handler.handleCallback(Handler.java:873)
                  at android.os.Handler.dispatchMessage(Handler.java:99)
                  at android.os.Looper.loop(Looper.java:201)
                  at android.app.ActivityThread.main(ActivityThread.java:6810)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)


E/MediaPlayerNative: Unable to create media player
D/MediaPlayer: create failed:
           java.io.IOException: setDataSourceFD failed.: status=0x80000000
               at android.media.MediaPlayer._setDataSource(Native Method)
               at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1304)
               at android.media.MediaPlayer.create(MediaPlayer.java:998)
               at android.media.MediaPlayer.create(MediaPlayer.java:971)

My code:

static void prepare_media_minigun() {
    for (int i = 0; i < minigun_max_ammo; i++) {
        media_minigun[i] = new MediaPlayer();

        if (minigun_silencer == false) {
            media_minigun[i] = MediaPlayer.create(context, R.raw.minigun);
        } else {
            media_minigun[i] = MediaPlayer.create(context, R.raw.minigun2);
        }

        media_minigun[i].setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                mp.release();
            }
        });
    }

    minigun_player_unloaded = false;
}

Array of MediaPlayers:

public static   MediaPlayer[] media_minigun = new MediaPlayer[100] ;

The prepare_media_minigun() method is called in OnCreate().

Maybe someone has already encountered that error, because I do not have any ideas how to solve it. This seems to be a problem with loading sounds from the raw folder.

I installed this application on OnePlus 7 with android 9.0 and it also does not work. It seems that the problem is something in this version of android.

Alesh17
  • 366
  • 1
  • 7
pawel22
  • 23
  • 5
  • 1
    Have you tried reencoding the audio file into a different format? [This answer](https://stackoverflow.com/a/9752082/11713280) suggests that an unsupported format could be a possible source for the exception. – pappbence96 Jul 30 '19 at 12:14
  • 1
    The original sound is in mp3 format. I tried WAV and OGG but it did`t help. – pawel22 Jul 30 '19 at 16:23

0 Answers0