【问题标题】:Environment.getExternalStorageState() returns "Removed" causing NPE in JellyBean/Ice Cream SandwichEnvironment.getExternalStorageState() 返回“已删除”,导致 JellyBean/Ice Cream Sandwich 中出现 NPE
【发布时间】:2017-04-13 11:30:49
【问题描述】:

我正在尝试使用 getExternalFilesDir(Environment.DIRECTORY_PICTURES) 创建一个新文件,但它返回 null。当我运行 Environment.getExternalStorageState() 它当前返回已删除。目前只有冰淇淋三明治和果冻豆是这种情况,因为我已经测试过棉花糖和牛轧糖,而且效果很好。我正在使用模拟器,我该如何解决这个问题?

编辑:我还在清单中包含了读写权限。 (读写外部存储)

【问题讨论】:

  • 尝试添加读写外部存储的权限。
  • 我已经在Manifest中定义了权限,(读写外部存储)

标签: android


【解决方案1】:

您是否将这些权限添加到清单中?

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

【讨论】:

  • 如果他没有指定,他会在 Marshmallow 上收到运行时崩溃。
  • 她*,但是是的,我有这些权限。
【解决方案2】:

来自docs of getExternalFilesDir()

如果共享存储当前不可用,则可能返回 null

这意味着,您必须通过getExternalStorageState(File)check 天气存储是否安装。

共享存储可能并不总是可用,因为用户可以弹出可移动媒体。可以使用 getExternalStorageState(File) 检查媒体状态。

【讨论】:

  • 是的,我已经检查了评估为已删除的 getExternalStorageState(File)。
猜你喜欢
  • 2012-01-28
  • 2012-03-01
  • 1970-01-01
  • 2012-04-13
  • 2012-04-01
  • 2012-02-28
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
相关资源
最近更新 更多