当前位置: 首页 > 知识库问答 >
问题:

Osmdroid(Android25):显示脱机映射文件给出错误:java。lang.NoSuchFieldError:没有字段调试\u TILE\u提供程序

郑琦
2023-03-14

作为步骤1,在线MAPNIK地图显示在两个清单之后。读取/写入外部资源的xml和运行时权限。

作为下一步,我想使用Osmdroid显示离线Mapsforge文件的地图。上下文是Android 25。

你能给我推荐一个好的Osmdroid、Osmbonuspack和Mapsforge版本组合吗?

下面是我用来显示脱机Mapsforge文件的代码。完整的例子在一个Github项目中。1个文件用于选择文件,1个文件用于显示文件。

private void showMapsforgeFile( File mapFile) {
    File[] files = new File[1];
    files[0] = mapFile;
    MapsForgeTileSource.createInstance( this.getApplication());
    fromFiles = MapsForgeTileSource.createFromFiles( files);
    forge = new MapsForgeTileProvider( new SimpleRegisterReceiver( getBaseContext()), fromFiles);
    mapView.setTileProvider(forge);
    mapView.getController().setZoom( 9);
    GeoPoint startPoint = new GeoPoint(52.2222, 36.6123);
}

这(通常)给出了下一个信息:

I/OsmDroid:下载磁贴时出错:/9/55/139 java。lang.NoSuchFieldError:在Lorg/osmdroid/tileprovider/constants/OpenStreetMapTileProviderConstants类中没有Z类型的字段调试_TILE_提供程序;或者它的超类等等

我尝试了多种版本的Osmdroid、Osmdroid和Mapsforge的组合。例如(我使用了很多其他组合…如jitpack.io、osmdroid版本和osmbonuspack版本所示。错误保持不变)。

compile 'com.github.MKergall:osmbonuspack:6.1'
compile 'org.apache.commons:commons-lang3:3.3.2'
compile 'com.google.code.gson:gson:2.7'
compile 'com.squareup.okhttp3:okhttp:3.4.1'
compile 'org.osmdroid:osmdroid-android:5.5'
compile 'org.osmdroid:osmdroid-mapsforge:5.5:release@aar'
compile 'org.mapsforge:mapsforge-map-android:0.6.1'
compile 'org.mapsforge:mapsforge-map:0.6.1'

共有1个答案

全昊焜
2023-03-14

正如github上提到的,osmdroid库的版本不匹配。将它们都设置为相同的版本,你就可以开始了。有问题的参考:osmdroid mapsforge

https://github.com/johan974/osmdroid-mapsforge-demo/blob/master/app/build.gradle#L34

编辑:

这是工作配置编译'org.osmdroid: osmdroid-android: 5.6.5'编译'org.osmdroid: osmdroid-mapsforge: 5.6.5'编译'org.mapsforge: mapsforge-map-android: 0.6.1'编译'org.mapsforge: mapsforge-map: 0.6.1'请注意,它将记录与渲染主题相关的错误消息,但它会渲染

还有一些小的api差异,我在你们项目的分支上修复了它们,并打开了一个pr。

 类似资料:
  • 我已经在osmdroid和osm奖金包(惊人的LIB!)上混了一段时间了,我一直在思考离线路由和逐圈导航的想法,现在,我还没有尝试过任何东西,但在组合中加入graphhopper听起来很有希望: 官方维基指南如下: 下载原始地图文件(.osm、.osm.pbf等) 跑/格拉普霍珀。sh导入映射文件 现在,这是为MapsForge设计的,我还没有机会检查结果。ghz文件,包含地图的路由数据,但是我的

  • 问题内容: 我一直在研究CRUD应用程序,我需要将数据从数据库导出到csv文件。为了导出,我不得不以以下代码所示的方式禁用ajax: 在调用的方法中,我创建文件并通过OmniFaces实用程序方法下载该文件: 使用相同的方法,我检查实际上是否有任何数据,并且如果没有任何数据,则显示警告对话框: 现在,尽管所有这些操作都能按预期工作,但是问题在于,由于禁用了ajax,因此无法动态显示对话框,并且需要

  • 猜猜我哪里错了。。? 错误: 正在创建名为“subjectController”的bean:通过字段“subjectService”表示未满足的依赖关系;嵌套的异常是org。springframework。豆。工厂未满足的依赖项异常:创建名为“subjectServiceImpl”的bean时出错:通过字段“subjectRepository”表示未满足的依赖项;嵌套的异常是org。springf

  • 我有以下实体、DTO类和推土机映射文件。我正在尝试使用推土机映射将包含2个微弱字节数组的Hibernate实体复制到新的DTO。获取java.lang.IllegalArgumentException:数组元素类型不匹配。 有什么想法吗? 映射文件: 实体类: DTO等级: 例外情况:

  • 下面是我的 我不会用这个名字在我的项目中的任何地方使用这个文件!!不过,在我的项目中还有许多其他的png文件。