【问题标题】:Can't read image from internal storage using react-native android无法使用 react-native android 从内部存储中读取图像
【发布时间】:2021-05-25 13:47:07
【问题描述】:

当我在 uri 中传递“file://”时,我无法读取图像文件

<View>
  <Text>
    YOLO
  </Text>
  <Image
    style={styles.tinyLogo}
    source={{
      uri: "file:///storage/emulated/0/DCIM/Screenshots/Fun.jpg",
    }}
  />
</View>

【问题讨论】:

  • 您是在保存图像然后尝试显示它吗?我一直在使用 react-native-fs,它有像 DocumentDirectoryPath 这样的变量,可以为你处理跨平台路径。曾经有一段时间我本可以告诉你正确的 android 路径格式,但即便如此还是很麻烦,react-native-fs 让它变得简单
  • 是的,图像存在于文件路径中,我尝试使用 rn fetch blob 没有运气,我无法尝试使用 react-native-fs,由于某种原因我似乎无法安装它:/
  • @RaiyanKhalilShuvo 我遇到了类似的路径问题,请参阅this,可能会对您有所帮助
  • 是的 rn fetch blob 有类似的东西,github.com/joltup/rn-fetch-blob/wiki/…
  • 您只在 Android 10 设备上遇到过这个问题?

标签: android image react-native local-storage


【解决方案1】:

尝试在 AndroidManifest 文件的 application 标签内添加以下标签:

android:requestLegacyExternalStorage="true"

例如:

<application
    // ...
    android:requestLegacyExternalStorage="true"
>
//...
</application>

另外,请确保您向用户询问存储权限

【讨论】:

  • 您的请求旧版仅对 Android 10 设备有帮助的信息丢失。
  • 这可行,但我必须将 compileSdkVersion 从 28 更改为 29 才能在新的 android 版本上工作。谢谢
  • @RaiyanKhalilShuvo 很高兴听到,是的,它要求您将 API 版本设置为 29,因为它是 Android 10 版本的更改,从现在开始,您必须要求将 API 版本设置为29 将应用上传到 Play 商店。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-01
相关资源
最近更新 更多