繁体   English   中英

Android MediaPlayer在Android 6.0棉花糖上崩溃

[英]Android MediaPlayer is Crashing on Android 6.0 Marshmallow

我的应用程序中已有此代码,我已经使用了多年,它在从API 10到API 22的所有android版本上均可使用。

我已将手机升级到API 23(Android 6.0棉花糖),现在崩溃了。

public static void beep(Context context) {
    MediaPlayer mp = MediaPlayer.create(context, R.raw.beep);
    mp.start();
    mp.setOnCompletionListener(new OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mp.release();
        }
    });
}

错误是:

01-29 17:16:20.641 8354-8651 / mobiliza30.fyb E / MediaPlayer:错误(1,-2147483648)01-29 17:16:20.643 8354-8354 / mobiliza30.fyb E / AndroidRuntime:FATAL EXCEPTION:main process :mobiliza30.fyb,PID:8354 java.lang.RuntimeException:无法恢复活动{mobiliza30.fyb / mobiliza30.fyb.activities.ItemCbte}:java.lang.NullPointerException:尝试调用虚拟方法'void android.media.MediaPlayer .start()在android.app.ActivityThread.performResumeActivity(ActivityThread.java:3121)在android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3152)在android.app.ActivityThread $ H.handleMessage上的空对象引用上(ActivityThread.java:1398)在android.os.Handler.dispatchMessage(Handler.java:102)在android.os.Looper.loop(Looper.java:148)在android.app.ActivityThread.main(ActivityThread.java: 5443),位于com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728)的java.lang.reflect.Method.invoke(本机方法),位于com.android.internal.os.ZygoteInit.m ain(ZygoteInit.java:618)原因:java.lang.NullPointerException:尝试在mobiliza30.fyb.utils.Utiles.beep()上的空对象引用上调用虚拟方法'void android.media.MediaPlayer.start()'。 Umobils.java:573)位于mobiliza30.fyb.activities.ItemCbte.buscarArticulo(ItemCbte.java:1544)位于mobiliza30.fyb.activities.ItemCbte.agregarArticulo(ItemCbte.java:1009)位于mobiliza30.fyb.activities.ItemCbte在mobiliza30.fyb.activities.ItemCbte $ 200(ItemCbte.java:64)在android.widget.TextView.doKeyDown(TextView.java:6038)在android.widget.TextView.onKeyDown($ 2.onEditorAction(ItemCbte.java:193)在android.widget.TextView.onKeyDown( android.view.KeyEvent.dispatch(KeyEvent.java:2654)处的TextView.java:5919)mobiliza30.fyb.activities.ItemCbte.onResume(ItemCbte.java)处android.view.View.dispatchKeyEvent(View.java:9237)处:600)在android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1281)在android.app.Activity.performResume(Activity.java:6320)在android.app.ActivityThread.performResumeActivity(ActivityThrea d.java:3110)位于android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3152)位于android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1398)位于android.os.Handler.dispatchMessage(Handler.java的com.java.lang.reflect.Method.invoke(Native Method)的android.os.Looper.loop(Looper.java:148)的android.os.Looper.loop(Looper.java:148)。 android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728)位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

已解决:更改声音文件,它可以完美运行,当然该文件的格式不受版本6 android支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM