Java 为什么我的File.mkdirs()总是返回false?

Java 为什么我的File.mkdirs()总是返回false?,java,android,file,android-external-storage,mkdirs,Java,Android,File,Android External Storage,Mkdirs,下面是本指南中给出的代码片段。以下几行(特别是以下几行中最后一个if块)出现问题: File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES), "MyCameraApp"); // This location works best if you want the created images to

下面是本指南中给出的代码片段。以下几行(特别是以下几行中最后一个
if
块)出现问题:

File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
              Environment.DIRECTORY_PICTURES), "MyCameraApp");

    // This location works best if you want the created images to be shared
    // between applications and persist after your app has been uninstalled.

    // Create the storage directory if it does not exist
    if (! mediaStorageDir.exists()){
        if (! mediaStorageDir.mkdirs()){
            Log.d("MyCameraApp", "failed to create directory");
            return null;
        }
    }
问题是
返回null

这意味着
mediaStorageDir.mkdirs()
始终返回false

问题是为什么以及我能做些什么来修复它?

您已经设置了

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />


在清单文件中?

@Solace您的targetSdk是什么?如果目录作为well@Solace如果添加运行时权限,它将有助于确保您在android清单文件中具有写入权限否,我只有
write\u EXTERNAL\u STORAGE
您可能需要这两种权限。试试看,你不需要两者兼而有之。您具有写入权限,读取权限为“内置”