首页 > 解决方案 > 尝试显示 OpenStreetMap 地图时出现文件存储错误

问题描述

我使用 OpenStreetMap 的 Android 应用程序已经完美运行了几个月,现在无法再显示 OpenStreetMap 地图。尽管获得了WRITE_EXTERNAL_STORAGE许可,但我收到如下消息:

E/OsmDroid: Unable to start the SQLite tile writer. Check external storage availability.
I/StorageUtils: /storage/emulated/0 is NOT writable

由于我的目标是 API29 并在 Android 10 手机上运行,​​我想问题与有关外部存储访问的新策略和使用存储访问框架的要求有关。我对吗?

不管我是对是错,有谁知道我该如何解决这个问题?

标签: javaandroidsqliteopenstreetmap

解决方案


因为您的目标是 Andorid 10 - api 29,所以官方 Android 文档指出:

在 Android 10 上运行

如果您的应用面向 Android 10(API 级别 29),请选择退出范围存储并继续使用适用于 Android 9 及更低版本的方法来执行此操作。

所以需要在AndroidManifest.xml中添加:

<manifest ... >
<!-- This attribute is "false" by default on apps targeting
   Android 10 or higher. -->
    <application android:requestLegacyExternalStorage="true" ... >
     ...
    </application>
</manifest>

@blackapps 这不是黑客攻击。


推荐阅读