android - Mapsforge 0.4.0 和 Eclipse 出现 NoClassDefFoundError

标签 android eclipse mapsforge

我正在尝试使用 Mapsforge 将 map View 添加到我的应用程序中。我已完成以下操作:

  • 下载 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
  • 右键单击文件并选择构建路径 > 添加到构建路径
  • 项目属性中,将四个 jar 标记为导出。

但是,当我运行我的应用程序时,它会在第一次调用库中的类时崩溃:

E/AndroidRuntime(21265): java.lang.NoClassDefFoundError: org.mapsforge.map.android.graphics.AndroidGraphicFactory

Android SDK工具均为17以上版本,不涉及Maven。

我一直在寻找答案,但没有结果。我尝试过将 jar 在列表中向上移动,清理项目 - 这和我已经做的事情是网上建议的本质。没有任何帮助。

当我检查 bin/dexedLibs 的内容时,我注意到 Mapsforge 的 jar 已创建,但除了 list 文件和(在 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...

最佳答案

NoClassDefFound 确实是一个很难解决的异常,您可以尝试一种解决方法。

解决方法:Java 构建路径 -> Oeder 和导出 -> 在 yourPath/src 上方制作 sur 3rd.jar

我知道android support java7 ,仅当您使用19以上版本时。

关于android - Mapsforge 0.4.0 和 Eclipse 出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23587939/

相关文章:

android - Android 中区分大小写的权限?

java - 我如何在其他 View 之后绘制某些 View ?

android - 如何在应用程序自动注销时收到通知并在关闭时清理数据

eclipse - 导入现有的Maven项目并构建成功,但是我看到导入统计信息在Java文件中显示错误

android - Mapsforge InternalRenderTheme 缺失错误

android - OSM Magsforge(离线) map 中点和路径之间的最短距离

android - Mapsforge on tap listeners 用于多个标记

android - 运行 openCV 示例时没有菜单(Android Studio)

java - 如何在 GGTS (Groovy Grails Tools Suite) 中正确配置 JDK 位置

java - 有没有办法将 hsqldb 数据文件嵌入到可执行 jar 中?