2020-07-03 10:56:35.039 30548-30548/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.documentsui, PID: 30548
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=42, result=-1, data=Intent { act=android.intent.action.SEND dat=file:///storage/emulated/0/Download/IMG_1748.mp4 (has extras) }} to activity {com.android.documentsui/com.android.documentsui.picker.PickActivity}: android.os.FileUriExposedException: file:///storage/emulated/0/Download/IMG_1748.mp4 exposed beyond app through Intent.getData()
at android.app.ActivityThread.deliverResults(ActivityThread.java:4547)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4591)
at android.app.ActivityThread.-wrap19(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1800)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:200)
at android.app.ActivityThread.main(ActivityThread.java:6956)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)
Caused by: android.os.FileUriExposedException: file:///storage/emulated/0/Download/IMG_1748.mp4 exposed beyond app through Intent.getData()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1960)
at android.net.Uri.checkFileUriExposed(Uri.java:2356)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9961)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9915)
at android.app.Activity.finish(Activity.java:5705)
at android.app.Activity.finish(Activity.java:5732)
at com.android.documentsui.picker.ActionHandler.onExternalAppResult(ActionHandler.java:216)
at com.android.documentsui.picker.ActionHandler.onActivityResult(ActionHandler.java:202)
at com.android.documentsui.BaseActivity.onActivityResult(BaseActivity.java:602)
at android.app.Activity.dispatchActivityResult(Activity.java:7518)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4543)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4591)
at android.app.ActivityThread.-wrap19(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1800)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:200)
at android.app.ActivityThread.main(ActivityThread.java:6956)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)
2020-07-03 10:57:03.561 30707-30707/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.documentsui, PID: 30707
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=42, result=-1, data=Intent { act=android.intent.action.SEND dat=file:///storage/emulated/0/Download/IMG_1748.mp4 (has extras) }} to activity {com.android.documentsui/com.android.documentsui.picker.PickActivity}: android.os.FileUriExposedException: file:///storage/emulated/0/Download/IMG_1748.mp4 exposed beyond app through Intent.getData()
at android.app.ActivityThread.deliverResults(ActivityThread.java:4547)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4591)
at android.app.ActivityThread.-wrap19(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1800)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:200)
at android.app.ActivityThread.main(ActivityThread.java:6956)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)
Caused by: android.os.FileUriExposedException: file:///storage/emulated/0/Download/IMG_1748.mp4 exposed beyond app through Intent.getData()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1960)
at android.net.Uri.checkFileUriExposed(Uri.java:2356)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9961)
at android.content.Intent.prepareToLeaveProcess(Intent.java:9915)
at android.app.Activity.finish(Activity.java:5705)
at android.app.Activity.finish(Activity.java:5732)
at com.android.documentsui.picker.ActionHandler.onExternalAppResult(ActionHandler.java:216)
at com.android.documentsui.picker.ActionHandler.onActivityResult(ActionHandler.java:202)
at com.android.documentsui.BaseActivity.onActivityResult(BaseActivity.java:602)
at android.app.Activity.dispatchActivityResult(Activity.java:7518)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4543)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4591)
at android.app.ActivityThread.-wrap19(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1800)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:200)
at android.app.ActivityThread.main(ActivityThread.java:6956)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)
操作步骤
使用 example 就可以复现,我们可以一起看看这个问题
录制 mp3 文件 1:
录制 mp3 文件 2:
如果上述步骤不崩溃,则会出现,
实质上,我已经停止了录音