因此,我最近开始为要在Android Studio中处理的项目编程音乐播放器。到目前为止一切都很好。当我尝试打开它时,该应用会要求提供它应该询问的权限,但随后崩溃。我复制了错误信息,因此可以帮助您更轻松地解决问题。
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
at com.example.musicplayer.MainActivity.onResume(MainActivity.java:103)
at com.example.musicplayer.MainActivity.onRequestPermissionsResult(MainActivity.java:57)
MainActivity.java:103-
if(!isMusicPlayerInit){
final ListView ListView = findViewById(R.id.listView);
final TextAdapter textAdapter = new TextAdapter();
musicFilesList = new ArrayList<>();
fillMusicList();
textAdapter.setData(musicFilesList);
ListView.setAdapter(textAdapter); <-----this is the 103rd line
isMusicPlayerInit = true;
}
MainActivity.java:57-
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(arePermissionsDenied()){
((ActivityManager) (this.getSystemService(ACTIVITY_SERVICE))).clearApplicationUserData();
recreate();
}else{
onResume(); <----this is the 57th line
}
}
答案 0 :(得分:1)
更改此代码:
if(!isMusicPlayerInit){
final ListView ListView = findViewById(R.id.listView);
final TextAdapter textAdapter = new TextAdapter();
musicFilesList = new ArrayList<>();
fillMusicList();
textAdapter.setData(musicFilesList);
ListView.setAdapter(textAdapter); <-----this is the 103rd line
isMusicPlayerInit = true;
}
收件人:
if(!isMusicPlayerInit){
final ListView listView = findViewById(R.id.listView);//here changed ListView ==>listView
final TextAdapter textAdapter = new TextAdapter();
musicFilesList = new ArrayList<>();
fillMusicList();
textAdapter.setData(musicFilesList);
listView .setAdapter(textAdapter); //here changed ListView ==>listView
isMusicPlayerInit = true;
}
应该是listView或其他任何名称 ListView ListView