android OSMDroid是否正在尝试打开并呈现它下载的缓存Map切片?

nhaq1z21  于 2023-04-04  发布在  Android
关注(0)|答案(1)|浏览(132)

背景

我正在开发一个使用OSMDroid的应用程序。在运行Map功能和测试bug时,我在日志中偶然发现了这样的东西:

...
2023-02-17 15:19:06.820 28041-28422 .networkmonitor         com.project123.networkmonitor        E  Failed to open file '/data/data/com.project123.networkmonitor/code_cache/.overlay/base.apk/assets/Mapnik/17/109600/60180.png': No such file or directory
2023-02-17 15:19:06.820 28041-28422 .networkmonitor         com.project123.networkmonitor        E  Failed to open file '/data/data/com.project123.networkmonitor/code_cache/.overlay/base.apk/assets/Mapnik/17/109600/60180.png': No such file or directory
2023-02-17 15:19:06.823 28041-28422 .networkmonitor         com.project123.networkmonitor        E  Failed to open file '/data/data/com.project123.networkmonitor/code_cache/.overlay/base.apk/assets/Mapnik/17/109594/60181.png': No such file or directory
2023-02-17 15:19:06.823 28041-28422 .networkmonitor         com.project123.networkmonitor        E  Failed to open file '/data/data/com.project123.networkmonitor/code_cache/.overlay/base.apk/assets/Mapnik/17/109594/60181.png': No such file or directory
2023-02-17 15:19:06.826 28041-28422 .networkmonitor         com.project123.networkmonitor        E  Failed to open file '/data/data/com.project123.networkmonitor/code_cache/.overlay/base.apk/assets/Mapnik/17/109595/60181.png': No such file or directory
2023-02-17 15:19:06.826 28041-28422 .networkmonitor         com.project123.networkmonitor        E  Failed to open file '/data/data/com.project123.networkmonitor/code_cache/.overlay/base.apk/assets/Mapnik/17/109595/60181.png': No such file or directory
2023-02-17 15:19:06.828 28041-28422 .networkmonitor         com.project123.networkmonitor        E  Failed to open file '/data/data/com.project123.networkmonitor/code_cache/.overlay/base.apk/assets/Mapnik/17/109596/60181.png': No such file or directory
2023-02-17 15:19:06.828 28041-28422 .networkmonitor         com.project123.networkmonitor        E  Failed to open file '/data/data/com.project123.networkmonitor/code_cache/.overlay/base.apk/assets/Mapnik/17/109596/60181.png': No such file or directory
...

它会继续这样下去,直到我退出运行Map的活动。这不是应用程序破坏,但它是一种恼人的,因为我一直在试图找到一种方法来摆脱消息。
经过一些研究,我认为这可能与Map瓦片的缓存方式有关,但我不知道在哪里寻找根本原因。此外,Map瓦片的渲染是正确的。
所以我寻找与问题相关的任何东西,并得到了这部分代码:

...
val tileSource: ITileSource =
    XYTileSource(
        "Mapnik", 1, 18, 256, ".png",
        arrayOf<String>(
            // extra URLs
            //"https://tiles.wmflabs.org/hikebike/"
            "https://tile.openstreetmap.org/"
        )
    )
osmDroidMapView.setTileSource(tileSource)
...

由于这是代码中唯一提到“Mapnik”的部分,我想我应该深入到TileSource的实现中。TileSource可以告诉我错误是在哪里产生的,但(到目前为止)什么也没有出现。

问题

  • 虽然Map瓦片加载正确,为什么OSMDroid会发生这样的事情?它是否试图访问并渲染它下载的缓存Map瓦片?
  • 如果它被下载了,为什么该高速缓存和它的目录不存在?它应该在某个地方存在吗?我确实试图寻找它试图访问的文件,但没有找到任何东西。
6xfqseft

6xfqseft1#

当我将minSDK从26降低到24时,也发生了同样的错误。将minSDK提高到26解决了这个问题。

相关问题