我正在尝试使用 Mapsforge 将地图视图添加到我的应用程序中。我做了以下事情:
- 下载jar文件并放在
libs/
文件夹 中- mapsforge-core-0.4.0.jar
- mapsforge-map-0.4.0.jar
- mapsforge-map-android-0.4.0.jar
- mapsforge-map-reader-0.4.0.jar
- 右键单击文件并选择Build Path > Add to Build Path。
- 在Project Properties中,将四个 jar 标记为已导出。
但是,当我运行我的应用程序时,它会在第一次调用库中的类时崩溃:
E/AndroidRuntime(21265): java.lang.NoClassDefFoundError: org.mapsforge.map.android.graphics.AndroidGraphicFactory
Android SDK 工具都在 17 以上版本。不涉及 Maven。
我一直在寻找答案,但无济于事。我已经尝试将罐子在列表中向上移动,清理项目 - 这和我已经做的事情是网络上建议的本质。没有任何帮助。
当我检查 bin/dexedLibs 的内容时,我注意到 mapsforge 的 jars 已创建但实际上是空的,除了清单文件和(在 maps jar 的情况下)osmarender 资源。值得注意的是,classes.dex 文件不存在。该文件夹中的 Android 支持库包含一个 classes.dex 文件。
有什么线索吗?
编辑:我检查了原始的 jar 文件。查看 .class 文件时,我注意到每个文件都以 开头CA FE BA BE 00 00 00 33
,即 Java 7 格式。
根据我在网上找到的一些信息,Android SDK 不支持 Java 7。还是这样吗?这可以解释为什么没有任何效果,但会让我想知道为什么 Mapsforge 开发人员会使用 Java 7 编译一个用于 Android 的 jar...