androidstudio java错误导致应用程序崩溃

时间:2020-06-25 14:15:59

标签: java android

因此,我最近开始为要在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
    }
}

1 个答案:

答案 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