DroidNinja / Android-FilePicker

Photopicker and document picker for android
https://arunsharma.me/blog/integrate-android-file-picker-photopicker-document-picker-android/
2.69k stars 556 forks source link

java.lang.ClassCastException: android.net.Uri$HierarchicalUri cannot be cast to java.lang.String #314

Open RageshAntony opened 3 years ago

RageshAntony commented 3 years ago

When selecting photos and clicking OK .. I am getting crash

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        when (requestCode) {
            FilePickerConst.REQUEST_CODE_PHOTO -> {
                if (resultCode == Activity.RESULT_OK && data != null) {
                    val photoPaths = ArrayList<String>()
                    photoPaths.addAll(data.getStringArrayListExtra(FilePickerConst.KEY_SELECTED_MEDIA))
                    Timber.d("photo ${photoPaths.size} ${photoPaths[0] }") // CRASH HERE
                    validateFileSize(photoPaths)
                }
            }
        }
    }

stack trace'

    Process: com.localspace.work, PID: 20708
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=65769, result=-1, data=Intent { (has extras) }} to activity {com.localspace.work/com.localspace.work.host.photoUpload.UploadPhotoActivity}: java.lang.ClassCastException: android.net.Uri$HierarchicalUri cannot be cast to java.lang.String
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4361)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4403)
        at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1809)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6692)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.ClassCastException: android.net.Uri$HierarchicalUri cannot be cast to java.lang.String
        at com.localspace.work.host.photoUpload.PhotoUploadFragment.onActivityResult(PhotoUploadFragment.kt:293)
        at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:170)
        at android.app.Activity.dispatchActivityResult(Activity.java:7458)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4354)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4403) 
        at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1809) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6692) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
2021-01-07 20:08:27.901 20708-20708/com.localspace.work E/CustomActivityOnCrash: App has crashed, executing CustomActivityOnCrash's UncaughtExceptionHandler
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=65769, result=-1, data=Intent { (has extras) }} to activity {com.localspace.work/com.localspace.work.host.photoUpload.UploadPhotoActivity}: java.lang.ClassCastException: android.net.Uri$HierarchicalUri cannot be cast to java.lang.String
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4361)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4403)
        at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1809)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6692)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.ClassCastException: android.net.Uri$HierarchicalUri cannot be cast to java.lang.String
        at com.localspace.work.host.photoUpload.PhotoUploadFragment.onActivityResult(PhotoUploadFragment.kt:293)
        at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:170)
        at android.app.Activity.dispatchActivityResult(Activity.java:7458)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4354)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4403) 
        at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1809) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6692) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
2021-01-07 20:08:27.984 20708-20708/com.localspace.work I/Process: Sending signal. PID: 20708 SIG: 9

Please help me

ArnoldBrown commented 3 years ago

No response?

wasee-wahla commented 2 years ago

@RageshAntony you are trying to store uri in string type list, to get rid of this change your list type to Uri.

MoustafaElsaghier commented 2 years ago

any updates on that?