我们将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上测试该应用程序。
最佳答案
升级时
来自org.osmdroid:osmdroid-android:6.0.1和org.mapsforge:mapsforge-map:0.6.1
到org.mapsforge:mapsforge-map:0.11.0的org.osmdroid:osmdroid-android:6.1.0
我必须添加才能使其正常工作-
'org.mapsforge:mapsforge-themes:0.11.0'
我现在正在使用
implementation 'org.osmdroid:osmdroid-android:6.1.0'
implementation ('org.osmdroid:osmdroid-mapsforge:6.1.0')
implementation 'org.mapsforge:mapsforge-map-android:0.11.0'
implementation 'org.mapsforge:mapsforge-map:0.11.0'
implementation 'org.mapsforge:mapsforge-themes:0.11.0'
也许丢失的.svg文件已移至其他软件包?