1

我正在使用这个库:CHARTS4J VERSION 1.3

这个演示课:看我的课正在处理一个java项目(在eclipse下)。但是在我的android项目中,我有这个错误:“java.lang.NoClassDefFoundError :com.googlecode.charts4j.Data”对于我的班级尝试使用的第一个对象(这一行:Plot plot = Plots.newPlot(Data .新数据(0, 66.6, 33.3, 100)); )

我确实在我的项目的“构建路径”中有该库,并检查它是否在我的类路径中:

classpathentry kind="lib" path="D:/WorkspaceAndroid/myproject/charts4j-1.3.jar"

我迷路了。为什么它在运行时不起作用?

谢谢你的帮助。

4

2 回答 2

1

我真的不明白你有什么问题,chart4j。但我也在 Android 上尝试了图表,而 androidplot.com 是一个易于使用且文档齐全的库,在编程时不会让我感到头疼。

于 2012-05-31T08:59:51.140 回答
0

同样的问题,但是构建了一个 Eclipse 插件。

Java中NoClassDefFoundError的原因是什么?

当 Java 虚拟机无法在运行时找到在编译期间可用的特定类时,Java 中的NoClassDefFoundError就会出现。例如,如果我们有一个类的方法调用或访问一个类的任何静态成员,并且该类在运行时不可用,那么 JVM 将抛出 NoClassDefFoundError。重要的是要了解这与 ClassNotFoundException 不同,后者仅在尝试在运行时加载类时出现,并且名称是在运行时而不是在编译时提供的。许多 Java 开发人员将这两个错误混为一谈而感到困惑。

简而言之,如果在编译期间存在类但在运行期间在 java 类路径中不可用,则会出现NoClassDefFoundError 。

Java中java.lang.NoClassDefFoundError和ClassNotFoundException的区别

很多时候,我们将自己与java.lang.ClassNotFoundExceptionjava.lang.NoClassDefFoundError混淆了,尽管它们都与 Java Classpath 相关,但它们彼此完全不同。当 JVM 尝试在运行时动态加载类时出现ClassNotFoundException,这意味着您在运行时给出类的名称,然后 JVM 尝试加载它,如果在类路径中找不到该类,则会抛出java.lang.ClassNotFoundException. 而在 NoClassDefFoundError 的情况下,有问题的类在编译期间存在,这就是程序成功编译但在运行时不可用的原因。在我看来,NoClassDefFoundError 比 ClassNotFoundException 更容易解决,因为在这里我们知道 Class 在构建期间存在,但它完全取决于环境,如果您在 J2EE 环境中工作,即使存在 class,您也可以获得 NoClassDefFoundError 因为它可能不存在对相应的 ClassLoader 可见。

更多详情:http: //javarevisited.blogspot.com.es/2011/06/noclassdeffounderror-exception-in.html

现在是 Eclipse 插件的解决方案

当我们得到NoClassDefFoundError时,类路径至少没有在一个地方定义。在 Eclipse 插件中,这些都是需要定义外部库的类路径的地方:

  1. 项目属性:右键单击项目,然后单击属性。然后是 Java 构建路径,然后是库。最后添加库的罐子(外部或项目文件夹中)
  2. 在 plugin.xml 文件中:打开 plugin.xml 文件,然后单击选项卡 Runtime。在 Classpath 部分中添加库。在选项卡中单击 Build 并在 Extra Classpath Entries 中添加库。

就这样。

对于 Android 项目应该是一个类似的解决方案,因为这种错误来自错误的类路径定义。

于 2013-08-19T17:19:40.120 回答