我们最近升级了离线应用程序中的 map 文件以支持额外的缩放级别,但现在应用程序无法在原始文件夹中找到资源。
之前的 map 约为 550MB。
新的为 1.2GB。
应用程序现在在这一行崩溃:
InputStream is = getResources().openRawResource(R.raw.fire_map);
在 logcat 中使用此行:java.lang.RuntimeException: Unable to start Activity ComponentInfo{org.ir.mobilemap/org.ir.mobilemap.IRMobileMapActivity}: android.content.res.Resources$NotFoundException:来自可绘制资源 ID #0x7f060003 的文件 res/raw/fire_map.mbtiles
我测试了多次,找不到问题,恢复到旧 map 效果很好。是否存在我不知道的限制,或者问题出在其他地方?
最佳答案
您可能已达到 APK 内最大文件大小的上限。你也许可以编译并打包它,但阅读它可能不起作用。
一些解决方案:
- 减小数据库大小
- 在应用程序启动时将文件内容从原始存储复制到本地存储,然后从文件系统访问数据库。这不适用于您的情况,因为您无法打开该文件
- 安装应用后将数据库下载到本地存储。
关于java - MBTiles 文件有大小限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38776633/