一段时间以来,我们在 Android 应用中使用 osmdroid 和 Mapsforge 来制作离线地图。本周我们决定更新到 6.0.1 版本。从那时起,当我尝试显示使用 osmdroid 的地图时收到以下错误:
E/XmlUtils: invalid resource: symbols/transport/helicopter_pad.svg
E/XmlUtils: invalid resource: symbols/transport/airport.svg
E/XmlUtils: invalid resource: symbols/poi/cave.svg
invalid resource: symbols/volcano.svg
E/XmlUtils: invalid resource: symbols/peak1.svg
invalid resource: symbols/poi/mountain_pass.svg
invalid resource: symbols/poi/mountain_pass.svg
E/XmlUtils: invalid resource: symbols/health/hospital.svg
invalid resource: symbols/health/pharmacy.svg
invalid resource: symbols/health/doctors.svg
E/XmlUtils: invalid resource: symbols/poi/embassy2.svg
invalid resource: symbols/accommodation/shelter2.svg
invalid resource: symbols/accommodation/alpinehut.svg
E/XmlUtils: invalid resource: symbols/accommodation/camping.svg
[... more similar errors ]
地图仍然显示,但我认为上面的符号丢失并且不再显示。
我们做了什么
我们更新了我们的库
implementation 'org.osmdroid:osmdroid-android:5.6.5'
implementation 'org.osmdroid:osmdroid-mapsforge:5.6.5'
implementation 'org.mapsforge:mapsforge-map-android:0.6.1'
implementation 'org.mapsforge:mapsforge-map:0.6.1'
至:
implementation 'org.osmdroid:osmdroid-android:6.0.1'
implementation 'org.osmdroid:osmdroid-mapsforge:6.0.1'
implementation 'org.mapsforge:mapsforge-map-android:0.8.0'
implementation 'org.mapsforge:mapsforge-map:0.8.0'
我还使用 osmdroid 6.0.1 和原始 Mapsforge 库 0.6.1 进行了测试,结果相同。不幸的是,我不是最初将这些库集成到我们的 Android 项目中的开发人员。因此我不确定是否需要以某种方式手动添加这些资源?也许其他人也遇到过这个问题?
不确定这些信息是否有帮助,但我正在 Android 6 和 8 上测试该应用程序。