【问题标题】:NoClassDefFoundError with Apache POI on AndroidAndroid 上 Apache POI 的 NoClassDefFoundError
【发布时间】:2013-08-05 09:55:18
【问题描述】:

我遇到了应用程序的 NoClassDefFoundError。错误说:

java.lang.NoClassDefFoundError: org.apache.poi.xssf.usermodel.XSSFWorkbook

问题是我已经尝试了所有我能找到的解决方案,但都没有成功。我知道问题出在导入/导出设置上,但我不知道是什么问题。

在我的团队中,我负责模型-视图-控制器架构中的模型,因此我首先开发了一个基本的 PC 版本,然后再将其移植到 Android。这个工作就像我的魅力一样,所以我怀疑我错过了 Eclipse 在手机上传输库的部分。

1:这是我的 Package Explorer 现在的视图:

如您所见,POI-3.9 库位于我项目的一个文件夹中。每个 .jar 都是必需的。

2:如果我们查看项目属性,我们可以在“库”选项卡中看到:

我按照this page 的建议制作了一个自定义用户库。

3:如果我们进入“订购和导出”选项卡:

我知道这是最重要的部分。

  1. 如果我尝试将我的库放在任何地方而不选中该框,无论如何我总是会收到 NoClassDefFoundError。
  2. 当我选中该框并执行相同操作时,Eclipse 在启动应用程序时冻结,我需要使用任务管理器终止该程序。

我的问题是:你看到它不工作的原因了吗?

【问题讨论】:

    标签: android apache-poi noclassdeffounderror eclipse-adt


    【解决方案1】:

    您需要选中该框以使该库可用于您的项目。通过导出这些 jar,您可以将它们提供给任何引用该库的项目。

    “Eclipse 冻结”是什么意思?它只是一个需要很长时间> 30分钟才能启动的新模拟器吗?这在普通的 Windows 盒子上并不少见。如果没有,请检查错误日志。

    【讨论】:

    • 谢谢谢尔顿。这真的很有帮助。它帮助我找到了解决方案,即使我的电脑出现问题,我也必须继续挖掘。首先:我发现我的计算机因为“转换为 Dalvik 格式失败并出现错误 1(这是它在其他计算机上所说的)而冻结。我通过删除所有导入的 Apache POI 库解决了我的问题,删除它并通过一个一个添加所需的 JAR 来创建另一个,以确保我得到唯一需要的 JAR。似乎 poi 中只有一个或多个 jar 导致了 Dalvik 格式错误。
    • 很好地解决了这个问题 - 您使用了一个解决难题的好方法。不确定我是否应得积分 - 您可以随时编写自己的解决方案并接受它而不是我的。
    【解决方案2】:

    使用以下步骤解决:

    1. 检查 LogCat
    2. 找出未找到的类。正在搜索该课程 Google for POI api 会告诉您该文件在哪个 jar 中。
    3. 下载该 jar 文件并包含在您的项目中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多