简体   繁体   中英

Music Player :App crashes

when i tried running the following code,the app crashed.But if i leave this fragment empty it won't crash...

public class F_Songs extends Fragment {
    ListView SngList;
     ArrayList<SongDetails> songdetails=null;
    String[] TRACK_COLUMNS;Cursor songCursor = null;




    AdapterView.AdapterContextMenuInfo info;
    ViewGroup view;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) 
    {    view = (ViewGroup) inflater.inflate(R.layout.l_songs, null);


     TRACK_COLUMNS = new String[] {          
             MediaStore.Audio.AudioColumns.ALBUM,
             MediaStore.Audio.AudioColumns.ARTIST,
             MediaStore.MediaColumns.DATA,
             MediaStore.MediaColumns.DISPLAY_NAME,
             MediaStore.Audio.AudioColumns.DURATION,
             MediaStore.Audio.AudioColumns.TRACK,
             MediaStore.Audio.AudioColumns.YEAR, 
             MediaStore.MediaColumns.SIZE,
             MediaStore.MediaColumns.TITLE,

             MediaStore.Audio.Media._ID
             };


    Cursor songCursor = getActivity().managedQuery(MediaStore.Audio.Media.
            INTERNAL_CONTENT_URI, TRACK_COLUMNS, null, null, null);

    if(songCursor != null){
        while(songCursor.moveToNext()) {
         SongDetails songs = new SongDetails();
        songs.song= songCursor.getString(3).toString();
        songs.Path=songCursor.getString(2).toString();
        songs.Artist=songCursor.getString(1).toString();
          songdetails.add(songs);
        //  publishProgress();
       }
   }




        SngList = (ListView) view.findViewById(R.id.SongList);
        registerForContextMenu(SngList);
         SngList.setAdapter(new Adapter_ListView(songdetails));


        getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

//           new ListPopulate().execute(); 


        return view;
        }}

and here is the logcat

10-01 22:09:24.890: E/AndroidRuntime(538): FATAL EXCEPTION: main
10-01 22:09:24.890: E/AndroidRuntime(538): java.lang.NullPointerException
10-01 22:09:24.890: E/AndroidRuntime(538):  at source.justanothermusicplayer.F_Songs.onCreateView(F_Songs.java:55)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.view.View.measure(View.java:12603)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4677)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.view.View.measure(View.java:12603)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4677)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.view.View.measure(View.java:12603)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4677)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
10-01 22:09:24.890: E/AndroidRuntime(538):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2072)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.view.View.measure(View.java:12603)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1044)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2418)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.os.Looper.loop(Looper.java:137)
10-01 22:09:24.890: E/AndroidRuntime(538):  at android.app.ActivityThread.main(ActivityThread.java:4340)
10-01 22:09:24.890: E/AndroidRuntime(538):  at java.lang.reflect.Method.invokeNative(Native Method)
10-01 22:09:24.890: E/AndroidRuntime(538):  at java.lang.reflect.Method.invoke(Method.java:511)
10-01 22:09:24.890: E/AndroidRuntime(538):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
10-01 22:09:24.890: E/AndroidRuntime(538):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
10-01 22:09:24.890: E/AndroidRuntime(538):  at dalvik.system.NativeStart.main(Native Method)

error is in this line songdetails.add(songs);

You're initializing songdetails with null .

You'll have to initialize your songdetails like this:

ArrayList<SongDetails> songdetails = new ArrayList<SongDetails>();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM