Zend certified PHP/Magento developer

how to fix “argument ‘files’ might be null” while making an arrayadapter?

I want to make a mediaplayer and it always throws nullpointerexception. I’am stuck at this point here is my code:

package MRT.MRT.MRT0012;

 import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;


public class MainActivity extends Activity {
Handler handler=new Handler();
MediaPlayer mediaPlayer=new MediaPlayer();
ListView listView;
Runnable exit=new Runnable() {
    @Override
    public void run() {
        backdoublepressed=false;
    }
};
boolean backdoublepressed=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.activity_main);
    super.onCreate(savedInstanceState);
    listView=findViewById(R.id.list);
    File file=new File(Environment.getExternalStorageDirectory()+"/Musics");
    File[] files=file.listFiles();
    ArrayAdapter adapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,files);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView< ?> parent, View view, int position, long id) {
            try {
                mediaPlayer.setDataSource(listView.getItemAtPosition(position).toString());
                mediaPlayer.prepare();
            } catch (IOException e) {
                e.printStackTrace();
                return;
            }
            mediaPlayer.start();
        }
    });

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activitymain_menu,menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public void onBackPressed() {
    if(backdoublepressed){
        MainActivity.this.finish();
    }
    else{
        backdoublepressed=true;
        Toast.makeText(getApplicationContext(),"press back again to exit",Toast.LENGTH_LONG).show();
        handler.postDelayed(exit,3000);
    }
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()){
        case(R.id.exit):{MainActivity.this.finish();break;}
        case(R.id.setting):{
            Intent intent=new Intent(getApplicationContext(),SettingActivity.class);
            startActivity(intent);
        }
    }
    return super.onOptionsItemSelected(item);
}

}

the exception starts from declaring and initializing the files variable with file.listFiles(); and is there any mistake that I made?

File file=new File(Environment.getExternalStorageDirectory()+"/Musics");
File[] files=file.listFiles();
ArrayAdapter adapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,files);
listView.setAdapter(adapter);

I would really appreciate if someone could solve this problem.