Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓工作室“;从未使用分配给MediaPlayer的值null;_Java_Android - Fatal编程技术网

Java 安卓工作室“;从未使用分配给MediaPlayer的值null;

Java 安卓工作室“;从未使用分配给MediaPlayer的值null;,java,android,Java,Android,我在安卓工作室遇到了问题。我正在制作一个音板,我想让我的MediaPlayer在播放完毕后为空。我已经在完整的侦听器上创建了一个,但是在侦听器内部,当我将我的MediaPlayer设置为null时,studio会声明一条警告:“从未使用分配给“mp”的null值。” 我还有其他四种类似的方法,除了在点击时播放不同的声音。我可能犯了一个明显的错误,但如果有人能帮助我,我将不胜感激。这是因为onCompletion方法中的mp参数正在隐藏您试图修改的mp成员变量。实际上,您正在将参数设置为null,

我在安卓工作室遇到了问题。我正在制作一个音板,我想让我的MediaPlayer在播放完毕后为空。我已经在完整的侦听器上创建了一个,但是在侦听器内部,当我将我的MediaPlayer设置为null时,studio会声明一条警告:“从未使用分配给“mp”的null值。”


我还有其他四种类似的方法,除了在点击时播放不同的声音。我可能犯了一个明显的错误,但如果有人能帮助我,我将不胜感激。

这是因为
onCompletion
方法中的
mp
参数正在隐藏您试图修改的
mp
成员变量。实际上,您正在将参数设置为null,这在这里是无用的。您希望改为修改阴影实例


使用与成员变量不冲突的其他变量名,或者使用外部类名作为限定符引用成员(例如
MyActivity.this.mp
,如果外部类是MyActivity)。

在XML中Playuptus()拼写是否正确?:)是的。我的问题已经回答了。谢谢你的帮助!
public void playUpToUs (View view) {
    if (mp == null){
        mp = MediaPlayer.create(this, R.raw.its_up_to_us);
        mp.start();
        mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                mp.release();
                mp = null;
            }
        });

    } else {
        mp.release();
        mp=null;
    }
}