I am trying to make music player with bottomNavigationView with activities. When I am pressing RecyclerView (which is Main2Activity) item it goes to Music Player activity (which is MainActivity) and it plays the track. But when I press the Home button (which should go to Main2activity) on the bottom Navigation Bar it crashes and and throws RuntimeException. I cant see any mistake that may cause this RuntimeException. Can you tell me why it's happening ?
ERROR:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.musicplayer, PID: 4194
java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.example.musicplayer/com.example.musicplayer.Main2Activity}: 
java.lang.RuntimeException: setDataSource failed: status = 0x80000000
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3319)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
    at android.app.ActivityThread.access$1100(ActivityThread.java:229)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:7406)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
    Caused by: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
    at android.media.MediaMetadataRetriever.setDataSource(Native Method)
    at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:80)
    at com.example.musicplayer.SongModel.<init>(SongModel.java:31)
    at com.example.musicplayer.Main2Activity.readSongs(Main2Activity.java:226)
    at com.example.musicplayer.Main2Activity.onCreate(Main2Activity.java:81)
    at android.app.Activity.performCreate(Activity.java:6904)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415) 
    at android.app.ActivityThread.access$1100(ActivityThread.java:229) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:7406) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Main2Activity:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    // Initialize and Assign Variable
    BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
    // Set Home Selected
    bottomNavigationView.setSelectedItemId(R.id.home);
    // Perform ItemSelectedListener
    bottomNavigationView.setOnNavigationItemSelectedListener(new 
    BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
            switch (menuItem.getItemId()){
                case R.id.home:
                    return true;
                case R.id.player:
                    startActivity(new Intent(getApplicationContext(), MainActivity.class));
                    overridePendingTransition(0,0);
                    return true;
            }
            return false;
        }
    });
    // Declaring IDs
    RecyclerView recyclerView = findViewById(R.id.recyclerView);
    // Asking || Checking the Storage Permission
    checkStoragePermission();
    // Getting MP3 files from both internal and external Storage /
    ArrayList<SongModel> songModelArrayList = readSongs("/storage/");
    ArrayList<SongModel> songModelArrayListFROM_INTERNAL = 
    readSongs(Environment.getExternalStorageDirectory().getAbsolutePath());
    ArrayList<String> songNames = new ArrayList<>();
    songModelArrayList.addAll(songModelArrayListFROM_INTERNAL);
    for (SongModel song : songModelArrayList){
        songNames.add(song.getTitle());
    }
    recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
    SongAdapter songAdapter = new SongAdapter(this, songNames, songModelArrayList, new 
        onSongItemClickListener() {
        @Override
        public void onItemClickListener(int position) {
            passSongToIntent();
            saveData(songModelArrayList, position);
        }
    });
    recyclerView.setAdapter(songAdapter);
}
void passSongToIntent() {
    Intent goToSongActivity = new Intent(getApplicationContext(), MainActivity.class);
    startActivity(goToSongActivity);
}
public ArrayList<SongModel> readSongs(String rootPath) {
    ArrayList<String> songPathList = getPlayList(rootPath);
    ArrayList<SongModel> songList = new ArrayList<>();
    for (String path : songPathList){
        SongModel song = new SongModel(path);
        song.setFAVOURITE_KEY(false);
        songList.add(song);
    }
    return songList;
}
}
MainActivity:
// Variables for SHUFFLE feature
private boolean SHUFFLE = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ArrayList<SongModel> songModelArrayList = retrieveDataFromSharedPreferences();
    setContentView(R.layout.activity_main);
    // Initilize and Assign Variable
    bottomNavigationView = findViewById(R.id.bottom_navigation);
    // Set Home Selected
    bottomNavigationView.setSelectedItemId(R.id.player);
    // Perform ItemSelectedListener
    bottomNavigationView.setOnNavigationItemSelectedListener(new 
        BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
            switch (menuItem.getItemId()){
                case R.id.home:
                    startActivity(new Intent(getApplicationContext(), Main2Activity.class));
                    overridePendingTransition(0,0);
                    return true;
                case R.id.player:
                    return true;
            }
            return false;
        }
    });
    initMusicPlayer(position, songModelArrayList);
    play_btn.setOnClickListener(this);
    playNextTrack(songModelArrayList);
    playPrevTrack(songModelArrayList);
}
void initMusicPlayer(int position, ArrayList<SongModel> songList) {
    SongModel song = songList.get(position);
    String path = song.getPath();
    String title = song.getTitle();
    String artist = song.getArtist();
    Bitmap albumArt = song.getAlbumCover();
    albumCover.setImageBitmap(albumArt);
    Snackbar snackbar = Snackbar.make(parent, "", Snackbar.LENGTH_SHORT);
    View snackBarView = snackbar.getView();
    snackBarView.animate();
    setVibrantColorOnViews(albumArt, snackBarView);
    Uri uri = Uri.parse(path);
    if (mediaPlayer != null) {
        mediaPlayer.stop();
        mediaPlayer.release();
    }
    mediaPlayer = MediaPlayer.create(this, uri);
    song_name.setText(title);
    song_artist.setText(artist);
    mediaPlayer_setOnPreparedLisntener();
    seekBar_setOnSeekBarChangeListener();
}
Entire Project is on Github : https://github.com/IonaBartishvili/Music_Player_with_Java_for_Android
User contributions licensed under CC BY-SA 3.0