微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 android 10 应用程序崩溃但在 android 11 中创建目录时它运行良好

如何解决在 android 10 应用程序崩溃但在 android 11 中创建目录时它运行良好

-我还在清单中添加了 android:requestLegacyExternalStorage="true"。

-在 android 10 及以下版本中存在问题。在 android 11 中运行良好。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.RECORD_AUdio" />
<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:requestLegacyExternalStorage="true"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication"></application>

我的代码

  File vidDir = new File(android.os.Environment.getExternalStoragePublicDirectory
                   (Environment.DIRECTORY_MOVIES) + File.separator + "HeepVideo"); if(!vidDir.exists()) {
         vidDir.mkdirs();
        System.out.println("Created");
      }

 String videoName = "Video_" + uuid.toString() + ".mp4";
 File fileVideo = new File(vidDir.getAbsolutePath(),videoName);
 
 if (fileVideo.exists()){
    fileVideo.createNewFile();
 }

错误

2021-04-08 20:11:26.870 23095-23095/com.example.myapplication W/System.err: java.io.FileNotFoundException: /storage/emulated/0/Movies/HeepVideo/Video_d545dce1-e554-4372-b480-bc0a15912efc.mp4: 打开失败:ENOENT(没有那个文件或目录) 2021-04-08 20:11:26.871 23095-23095/com.example.myapplication W/System.err:在 libcore.io.IoBridge.open(IoBridge.java:496) 2021-04-08 20:11:26.871 23095-23095/com.example.myapplication W/System.err:在 java.io.FileOutputStream.(FileOutputStream.java:235) 2021-04-08 20:11:26.871 23095-23095/com.example.myapplication W/System.err:在 java.io.FileOutputStream.(FileOutputStream.java:186) 2021-04-08 20:11:26.871 23095-23095/com.example.myapplication W/System.err:在 com.example.myapplication.activity.VideoPreviewActivity.shareVideoInOtherApp(VideoPreviewActivity.java:497) 2021-04-08 20:11:26.871 23095-23095/com.example.myapplication W/System.err:在 com.example.myapplication.activity.VideoPreviewActivity.access$600(VideoPreviewActivity.java:66) 2021-04-08 20:11:26.871 23095-23095/com.example.myapplication W/System.err:在 com.example.myapplication.activity.VideoPreviewActivity$6$1.run(VideoPreviewActivity.java:421) 2021-04-08 20:11:26.871 23095-23095/com.example.myapplication W/System.err:在 android.os.Handler.handleCallback(Handler.java:883) 2021-04-08 20:11:26.872 23095-23095/com.example.myapplication W/System.err:在 android.os.Handler.dispatchMessage(Handler.java:100) 2021-04-08 20:11:26.872 23095-23095/com.example.myapplication W/System.err:在 android.os.Looper.loop(Looper.java:214) 2021-04-08 20:11:26.873 23095-23095/com.example.myapplication W/System.err:在 android.app.ActivityThread.main(ActivityThread.java:7403) 2021-04-08 20:11:26.874 23095-23095/com.example.myapplication W/System.err: 在 java.lang.reflect.Method.invoke(Native Method) 2021-04-08 20:11:26.874 23095-23095/com.example.myapplication W/System.err:在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 2021-04-08 20:11:26.874 23095-23095/com.example.myapplication W/System.err:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935) 2021-04-08 20:11:26.875 23095-23095/com.example.myapplication W/System.err:原因:android.system.ErrnoException:打开失败: ENOENT(没有那个文件或目录) 2021-04-08 20:11:26.875 23095-23095/com.example.myapplication W/System.err:在 libcore.io.Linux.open(本机方法) 2021-04-08 20:11:26.875 23095-23095/com.example.myapplication W/System.err:在 libcore.io.ForwardingOs.open(ForwardingOs.java:167) 2021-04-08 20:11:26.875 23095-23095/com.example.myapplication W/System.err:在 libcore.io.BlockGuardOs.open(BlockGuardOs.java:252) 2021-04-08 20:11:26.875 23095-23095/com.example.myapplication W/System.err:在 libcore.io.ForwardingOs.open(ForwardingOs.java:167) 2021-04-08 20:11:26.875 23095-23095/com.example.myapplication W/System.err:在 android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7302) 2021-04-08 20:11:26.875 23095-23095/com.example.myapplication W/System.err:在 libcore.io.IoBridge.open(IoBridge.java:482) 2021-04-08 20:11:26.875 23095-23095/com.example.myapplication W/System.err:……还有 12 个

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。