我正在使用这个库: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”
我迷路了。为什么它不能在运行时工作?
请你帮忙。
答案 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插件中,这些是需要定义外部库的类路径的所有地方:
这就是全部。
对于Android项目应该是类似的解决方案,因为这种错误来自错误的类路径定义。