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.
User contributions licensed under CC BY-SA 3.0