Java Android Android.media.PlayerBase.PlaybackDetection回调NullPointerException

Java Android Android.media.PlayerBase.PlaybackDetection回调NullPointerException,java,android,android-mediaplayer,Java,Android,Android Mediaplayer,我的应用程序仅在vivo手机中崩溃,错误日志如下: java.lang.NullPointerException:尝试调用虚拟方法 上的“java.lang.String android.content.Context.getOpPackageName()” 位于的空对象引用 PlaybackDetectionCallBack(PlayerBase.java:348) 位于android.media.PlayerBase.baseStop(PlayerBase.java:229) android

我的应用程序仅在vivo手机中崩溃,错误日志如下:

java.lang.NullPointerException:尝试调用虚拟方法 上的“java.lang.String android.content.Context.getOpPackageName()” 位于的空对象引用 PlaybackDetectionCallBack(PlayerBase.java:348) 位于android.media.PlayerBase.baseStop(PlayerBase.java:229) android.media.MediaPlayer$2.onCompletion(MediaPlayer.java:3578)位于 MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:3351) 位于android.os.Handler.dispatchMessage(Handler.java:106) Looper.loop(Looper.java:192)位于 main(ActivityThread.java:6671)位于 java.lang.reflect.Method.invoke(本机方法)位于 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:818)

我相信这是关于我用来在我的应用程序中播放BGM的
MediaPlayer

但我无法找出这是如何发生的,因为错误堆栈没有检索到我的代码

这是我所有关于玩BGM的代码

public void playBgm(final int resId, boolean restartIfSame) {
    if(resId == currentBgmRes && !restartIfSame) {
        if(!bgmPlayer.isPlaying()) {
            bgmPlayer.start();
        }
        return;
    }
    if(bgmPlayer.isPlaying()) {
        bgmPlayer.stop();
    }
    _playBgm(resId);
}

private void _playBgm(int resId) {
    bgmPlayer.release();
    bgmPlayer = MediaPlayer.create(this, resId);
    bgmPlayer.setLooping(true);
    currentBgmRes = resId;
    bgmPlayer.start();
}
这两个函数位于
类AppDelegate extensed Application
中,因此
应该是应用程序实例


它并不总是崩溃。由于导致问题的手机是某个远方用户的,我几天内都拿不到手机。所以我不确定它会在什么情况下发生,但在任何情况下都不应该发生。

我解决了问题

My
MediaPlayer
变量具有初始值
new MediaPlayer()

当播放BGM的
活动调用
onPause()
时,我调用
MediaPlayer.pause()

但是调用
pause()
new MediaPlayer()
似乎会在某些设备上导致崩溃,而在其他设备上则是OK

我将初始值更改为
null
,并在使用对象时执行null检查。坠机事件再也没有发生过