无法在模拟器上的 /storage/emulated/0 上创建目录
Can't create a directory on /storage/emulated/0 on emulator
我正在尝试在我的 android 模拟器上创建一个目录,但我做不到,我已经拥有清单 write_storage 的权限,而且我没有得到任何错误,但是 mkdir( ) return 错误,我验证外部存储是否也是可写的,它可以在物理设备上运行我的代码:
/// Cria uma nova pasta para colocar o backup
File direct = new File(Environment.getExternalStorageDirectory(),
"/Financas RW Backup");
try {
if (!direct.exists()) {
if(isExternalStorageWritable()&&isExternalStorageReadable()) {
if( direct.mkdir()) {
fachada.showMessage(ExportImportDB.this," Criado");
}else{
fachada.showMessage(ExportImportDB.this," Não Criado");
}
}
}
} catch (Exception e) {
fachada.showMessage(this, e.toString());
}
您必须选择:
- 将
compileSdkVersion
和 targetSdkVersion
降级到 build.gradle
中的较低版本
- 在 Android 6 上 需要 在运行时请求写入权限
.
我个人不建议第一个。更多信息请查看:
- Android 6.0 Marshmallow. Cannot write to SD Card
- Google Play services 8.1 and Android 6.0 Permissions
希望对您有所帮助!!
我有一个类似的问题已通过使用 mkdirs 而不是 mkdir 得到解决
我遇到了与 Android 10 相同的问题。我通过将 android:requestLegacyExternalStorage="true"
添加到清单中的 <application>
元素来解决它
注意:我们也可以使用context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)
。环境中还有其他目录类型常量,如 DIRECTORY_MUSIC
、DIRECTORY_MOVIES
等
我正在尝试在我的 android 模拟器上创建一个目录,但我做不到,我已经拥有清单 write_storage 的权限,而且我没有得到任何错误,但是 mkdir( ) return 错误,我验证外部存储是否也是可写的,它可以在物理设备上运行我的代码:
/// Cria uma nova pasta para colocar o backup
File direct = new File(Environment.getExternalStorageDirectory(),
"/Financas RW Backup");
try {
if (!direct.exists()) {
if(isExternalStorageWritable()&&isExternalStorageReadable()) {
if( direct.mkdir()) {
fachada.showMessage(ExportImportDB.this," Criado");
}else{
fachada.showMessage(ExportImportDB.this," Não Criado");
}
}
}
} catch (Exception e) {
fachada.showMessage(this, e.toString());
}
您必须选择:
- 将
compileSdkVersion
和targetSdkVersion
降级到build.gradle
中的较低版本
- 在 Android 6 上 需要 在运行时请求写入权限 .
我个人不建议第一个。更多信息请查看:
- Android 6.0 Marshmallow. Cannot write to SD Card
- Google Play services 8.1 and Android 6.0 Permissions
希望对您有所帮助!!
我有一个类似的问题已通过使用 mkdirs 而不是 mkdir 得到解决
我遇到了与 Android 10 相同的问题。我通过将 android:requestLegacyExternalStorage="true"
添加到清单中的 <application>
元素来解决它
注意:我们也可以使用context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)
。环境中还有其他目录类型常量,如 DIRECTORY_MUSIC
、DIRECTORY_MOVIES
等