Charts4j 库适用于 Java 项目,但不适用于 Android 项目



我正在使用这个库: CHARTS4J 版本 1.3

这个演示类:看我的类正在处理一个Java项目(在eclipse下)。但是在我的安卓项目中,我有这个错误:"爪哇。NoClassDefFoundError: com.googlecode.charts4j.Data"作为我的类尝试使用的第一个对象(这一行:绘图图=图斯.newPlot(Data.newData(0,66.6,33.3,100));)

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

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

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

谢谢你的帮助。

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

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

Java中NoClassDefFoundError的原因是什么?

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

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

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

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

有关更多详细信息:http://javarevisited.blogspot.com.es/2011/06/noclassdeffounderror-exception-in.html

现在是 Eclipse 插件的解决方案

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

    项目属性
  1. :右键单击项目,然后单击属性。然后是 Java 构建路径,然后是库。最后添加库的jars(外部或项目文件夹中)
  2. 在插件.xml文件中:打开插件.xml文件,然后单击运行时选项卡。在类路径部分添加库。单击选项卡"构建并在额外类路径条目中添加库"。

仅此而已。

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

相关内容

  • 没有找到相关文章

最新更新