【问题标题】:android.database.sqlite.SQLiteException: no such column: date_addedDESC (Sqlite code 1 SQLITE_ERROR)android.database.sqlite.SQLiteException: no such column: date_addedDESC (Sqlite code 1 SQLITE_ERROR)
【发布时间】:2022-11-20 10:43:43
【问题描述】:

I make an audio player app and while debugging this app on my phone showing exception sqllite exception and this audio player it was crashed I'm searching more times and try more solutions but its error still remain and this app its needs external storage permission but Im don't have sd memory card I want help to resolve this error

this is out put full SQliteEXCEPTION exception:

  android.database.sqlite.SQLiteException: no such column: date_addedDESC (Sqlite code 1 SQLITE_ERROR): , while compiling: SELECT _id, _display_name, duration, _size, album_id FROM audio WHERE ((is_pending=0) AND (is_trashed=0) AND (volume_name IN ( 'external_primary' ))) AND (date_addedDESC), (OS error - 2:No such file or directory)

and this main activity code for this problem :

 private void fetchPlayer() {
        //define a list to carry players
        List<player> mPlayer = new ArrayList<> ();
        Uri mediaStoreUri;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {

        mediaStoreUri = MediaStore.Audio.Media.getContentUri (MediaStore.VOLUME_EXTERNAL);

    }
        else{

        mediaStoreUri = MediaStore.Audio.Media. EXTERNAL_CONTENT_URI;

    }

        // define projection

        String[] projection = new String[]{
                MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.DISPLAY_NAME,
                MediaStore.Audio.Media.DURATION,
                MediaStore.Audio.Media.SIZE,
                MediaStore.Audio.Media.ALBUM_ID,

        };

        // order
         String sortOrder = MediaStore.Audio.Media.DATE_ADDED + " DESC  ";

        // get the players
        try (Cursor cursor = getContentResolver ().query (mediaStoreUri,projection,sortOrder,null,null)) {
            // cache cursor indices
            int idColumn = cursor.getColumnIndexOrThrow (MediaStore.Audio.Media._ID);
            int nameColumn = cursor.getColumnIndexOrThrow (MediaStore.Audio.Media.DISPLAY_NAME);
            int durationColumn = cursor.getColumnIndexOrThrow (MediaStore.Audio.Media.DURATION);
            int sizeColumn = cursor.getColumnIndexOrThrow (MediaStore.Audio.Media.SIZE);
            int albumColumn = cursor.getColumnIndexOrThrow (MediaStore.Audio.Media.ALBUM_ID);


            //clear the previous loaded before adding loading again
             while (cursor.moveToNext ()){
                //get the values of a column for a given audio file
                 long id = cursor.getLong(idColumn );
                 String name = cursor.getString (nameColumn);
                 int duration = cursor.getInt (durationColumn);
                 int size = cursor.getInt (sizeColumn);
                 long albumId = cursor.getLong (albumColumn);


                 // player Uri
                 Uri uri = ContentUris.withAppendedId (MediaStore.Audio.Media.EXTERNAL_CONTENT_URI , id );

                 // album artwork uri
                 Uri albumArtWorkUri = ContentUris.withAppendedId (Uri.parse("content:// media/external/audio/albumart") , albumId);

                 // remove mp3 extension from players name
                 name = name.substring (0 , name.lastIndexOf ("."));

                 //player item
                 player player  = new player (name , uri , albumArtWorkUri , size , duration , id );

                 //add player item to play list
                 mPlayer.add(player);

             }

             //display player
             showPlayers(mPlayer);

        }

    }

    private void showPlayers(List<player> mPlayer){

        if(mPlayer.size () == 0){

            Toast.makeText (this , "No Players" , Toast.LENGTH_SHORT ).show ();

            return;

        }

        // save players
        allPlayer.clear ();
        allPlayer.addAll (mPlayer);

        //update the tools bar title
        String title = getResources ().getString (R.string.app_name) + "." + mPlayer.size ();
        Objects.requireNonNull (getSupportActionBar ()).setTitle (title);

        //layout manager
        LinearLayoutManager layoutManager = new LinearLayoutManager (this);
        recyclerView.setLayoutManager (layoutManager);

        //players adapter
        playerAdapter = new playerAdapter (this , mPlayer);
        //set the adapter to recycleView
        recyclerView.setAdapter (playerAdapter);

    }
}


                                                                                                                    
        

【问题讨论】:

  • Please elaborate about date_addedDESC. Where is it in you code?
  • String sortOrder = MediaStore.Audio.Media.DATE_ADDED + " DESC "; its error about this code
  • and when I add this line code like column showing other error private static final String COLUMN_DATE_ADDED = "DESC"; and pass this column as string column in to while (cursor.moveToNext ()){ show error in log : android.database.sqlite.SQLiteException: near "DESC": syntax error (Sqlite code 1 SQLITE_ERROR):
  • Well please comment on the error first. What happened? You see that you did not program date_addedDESC but ..
  • I do not understand your last comment.

标签: java android sqlite android-studio sqliteexception


【解决方案1】:

SortOrder is last parameter:

Cursor cursor = getContentResolver ().query (mediaStoreUri,projection,null,null,sortOrder)

【讨论】:

  • not things changed sir it is crashed still remain
  • still occur error no such column: date_addedDESC?
  • As Detail Error : AND (date_addedDESC) : the cause: 1. parameter is not correct,, 2. Between "date_addedDESC" must add 1 space.
  • add space between "date_addedDESC" like this sir DATA_ADDED + "_DESC" I try this sir and output logs show incomplete input for sqllite excption
【解决方案2】:

ok I solve it's problem I just space in sortOrder variable and I just click:

1- Build 2- then Clean Project 3- and Rebuild Project String sortOrder = MediaStore.Audio.Media.DATE_ADDED + " DESC ";

maybe to help any Developer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-09
    • 2021-11-13
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2018-04-19
    相关资源
    最近更新 更多