Charts4j库在Java项目上工作但在Android项目上没有?

时间:2012-05-31 08:50:17

标签: android noclassdeffounderror charts4j

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

这个演示类:See my class 正在处理java项目(在eclipse下)。 但在我的 android项目中,我有这个错误: “java.lang。 NoClassDefFoundError :com.googlecode.charts4j.Data”代表我的班级尝试使用的第一个对象(此行: Plot plot = Plots.newPlot(Data.newData) (0,66.6,33.3,100));

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

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

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

请你帮忙。

2 个答案:

答案 0 :(得分:1)

我真的不明白你有什么问题,使用chart4j。 但我也在Android上尝试过图表,androidplot.com是一个易于使用的文档库,在编程时没有让我头痛。

答案 1 :(得分:0)

这里的问题相同,但是构建一个Eclipse插件。

Java中NoClassDefFoundError的原因是什么?

当Java虚拟机无法在运行时找到编译时可用的特定类时,Java中出现

NoClassDefFoundError 。例如,如果我们从类中调用方法或访问类的任何静态成员,并且该类在运行时不可用,那么JVM将抛出NoClassDefFoundError。重要的是要理解这与ClassNotFoundException不同,ClassNotFoundException是在尝试仅在运行时加载类时出现的,而名称是在运行时提供的,而不是在编译时提供的。许多Java开发人员混淆了这两个错误而感到困惑。

简而言之,如果一个类在编译期间存在但在运行时期间在java类路径中不可用,那么将会出现 NoClassDefFoundError

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

很多时候我们把自己与 java.lang.ClassNotFoundException java.lang.NoClassDefFoundError 混淆了一下,虽然它们都与Java Classpath有关但它们各自完全不同其他。 ClassNotFoundException 在JVM尝试在运行时动态加载类时出现意味着您在运行时提供类的名称,然后JVM尝试加载它,如果在类路径中找不到该类,则抛出 java .lang.ClassNotFoundException 。在NoClassDefFoundError的情况下,在编译时出现问题类,这就是程序成功编译但在运行时由于任何原因不可用的原因。在我看来,NoClassDefFoundError比ClassNotFoundException更容易解决,因为我们知道Class在构建期间存在,但它完全依赖于环境,如果你在J2EE环境中工作,你甚至可以得到NoClassDefFoundError,因为它可能不存在对应的ClassLoader可见。

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

现在是Eclipse插件的解决方案

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

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

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