Получение этой ошибки для устройства Motorola — System.err: java.lang.Исключение IllegalArgumentException: столбец «_data» не существует

#java #android #android-studio

Вопрос:

Когда я пытаюсь выбрать файл из внутреннего хранилища на устройстве Motorola(Android N), я получаю следующую ошибку — System.err: java.lang.Исключение IllegalArgumentException: столбец «_data» не существует

Вот фрагмент кода в моем приложении-

//Метод getDataColumn

 public static String getDataColumn(Context context, Uri uri, String selection,
                                   String[] selectionArgs) {

    Cursor cursor = null;
    final String column = "_data";
    final String[] projection = {
            column
    };

    try {
        cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,null);
        if (cursor != null amp;amp; cursor.moveToFirst()) {
            final int column_index = cursor.getColumnIndexOrThrow(column);
            return cursor.getString(column_index);
        }
    } finally {
        if (cursor != null)
            cursor.close();
    }
    return null;

}
 

LOGCAT

 2021-09-01 14:52:28.920 29762-29762/com.maneckji.teacher E/Applog-: Data---onActivityResult() called with: requestCode = [5], resultCode = [-1], data = [Intent { dat=content://com.lenovo.FileBrowser.FileProvider/root_path/storage/emulated/0/WhatsApp/Media/WhatsApp Images/IMG-20210830-WA0000.jpg flg=0x3 }]
2021-09-01 14:52:28.921 29762-29762/com.maneckji.teacher E/Applog-: Data---URI-------------->content://com.lenovo.FileBrowser.FileProvider/root_path/storage/emulated/0/WhatsApp/Media/WhatsApp Images/IMG-20210830-WA0000.jpg
2021-09-01 14:52:28.923 4890-4890/? D/ActivityThread: SVC-Calling onStartCommand: com.motorola.motocare.MotoCareService@76c37b9, flags=0, startId=8136
2021-09-01 14:52:28.924 1003-4054/? V/ActivityManager: Broadcast: Intent { act=com.motorola.motocare.PROTECTED_INTENT_TRIGGER flg=0x10 (has extras) } ordered=false userid=0 callerApp=ProcessRecord{209612 1468:com.motorola.process.system/1000}
2021-09-01 14:52:28.924 29762-29762/com.maneckji.teacher E/Applog-: Data---MediaStore and general
2021-09-01 14:52:28.928 317-317/? D/Zygote: runOnce: get socket, args=[Ljava.lang.String;@217e811
2021-09-01 14:52:28.930 317-317/? I/Zygote: ForkAndSpecializeCommon: Begin
2021-09-01 14:52:28.938 317-317/? I/Zygote: ForkAndSpecializeCommon: Finished, pid of child process is 30657 
2021-09-01 14:52:28.938 1003-4054/? W/Process: zygoteSendArgsAndGetResult: start read result...
2021-09-01 14:52:28.940 317-317/? D/Zygote: runOnce: Connection end
2021-09-01 14:52:28.941 1003-4054/? W/Process: -400046957ms so far, end read result
2021-09-01 14:52:28.941 1003-4054/? I/ActivityManager: Start proc 30657:com.lenovo.FileBrowser2/u0a5 for content provider com.lenovo.FileBrowser2/android.support.v4.content.FileProvider
2021-09-01 14:52:28.943 4890-4890/? D/ActivityThread: SVC-Calling onStartCommand: com.motorola.motocare.MotoCareService@76c37b9, flags=0, startId=8137
2021-09-01 14:52:28.981 30657-30657/? I/art: Starting a blocking GC AddRemoveAppImageSpace
2021-09-01 14:52:28.994 30657-30657/? I/art: Starting a blocking GC HeapTrim
2021-09-01 14:52:29.014 29762-29762/com.maneckji.teacher W/System.err: java.lang.IllegalArgumentException: column '_data' does not exist
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:333)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at android.database.CursorWrapper.getColumnIndexOrThrow(CursorWrapper.java:87)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at com.maneckji.teacher.HomeActivity.getDataColumn(HomeActivity.java:97)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at com.maneckji.teacher.helpers.AppUtils.getfilePath(AppUtils.java:449)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at com.maneckji.teacher.NoticeBoardFragment.onActivityResult(NoticeBoardFragment.java:499)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at android.app.Activity.dispatchActivityResult(Activity.java:6980)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at android.app.ActivityThread.deliverResults(ActivityThread.java:4251)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at android.app.ActivityThread.handleSendResult(ActivityThread.java:4298)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at android.app.ActivityThread.-wrap20(ActivityThread.java)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1613)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:110)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at android.os.Looper.loop(Looper.java:203)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6339)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1084)
2021-09-01 14:52:29.015 29762-29762/com.maneckji.teacher W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:945)
2021-09-01 14:52:29.019 29762-30671/com.maneckji.teacher V/FA: Connecting to remote service
 

Какова будет альтернатива приведенному выше коду.
Я буду очень благодарен, если кто-нибудь поможет мне с этой ошибкой.