почему я не могу использовать метод создания вне функции в AppCompatActivity - PullRequest
0 голосов
/ 08 апреля 2020

Мое приложение падает, когда я запускаю, когда я пишу код, подобный этому

public class MainActivity extends AppCompatActivity {
    MediaPlayer mplayer= MediaPlayer.create(this,R.raw.song);
    public void playMusic(View view){
        mplayer.start();
    }
    public void pauseMusic(View view){
        mplayer.pause();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


    }
}

, но когда я пишу выше код, подобный этому, тогда он прекрасно работает

public class MainActivity extends AppCompatActivity {
    MediaPlayer mplayer;
    public void playMusic(View view){
        mplayer= MediaPlayer.create(this,R.raw.song);
        mplayer.start();
    }
    public void pauseMusic(View view){
        mplayer.pause();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


    }
}

пожалуйста, кто-нибудь, скажите мне, что не так с первым кодом

Спасибо

1 Ответ

0 голосов
/ 08 апреля 2020

потому что проигрыватель должен быть инициализирован в тот момент, когда контекст не пустой. То есть в верхнем коде context == null в проигрывателе. Поэтому приложение вылетает.

...