2014-06-22 24 views
1

我在Android项目中使用Mozilla的Rhino。但是,我的Java版本在JDK中拥有此库的副本。正因为如此,我收到错误:Android Import Overlap

06-22 17:59:01.008: E/AndroidRuntime(1150): java.lang.NoClassDefFoundError: sun.org.mozilla.javascript.internal.Context 

我把完全相同的罐子中的“库”文件夹,我的项目,但我在覆盖原有的图书馆没有运气。基本上我想告诉eclipse停止指向JDK的Rhino版本并指向我的。无论如何,我可以做到这一点,而不删除JDK的jar文件内的文件?

编辑:

Highlighting the import sun.org.mozilla.javascript.internal.Context, then going to Declarations->Project The import comes from /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes

你可以从两个图像看,当我强调进口,月食说,进口正在从JDK,不是我的.jar文件中引用。编辑: 我的构建路径。 Java Build Path/Libraries in eclipse

+0

请问您可以添加Java Build Path属性的屏幕截图吗?选择Libraries选项卡。 – josephus

回答

2

Android项目不使用JDK的类。 Android SDK中没有sun.*(并且希望在任何Android本身中)。

This blog post似乎表明标准js.jar应该是开箱即用的。

如果您由于某种原因重新编译Rhino,则应该在Android库项目中针对android.jar进行编译,而不是针对JDK的类库编译。

此外,您正在专门引用JDK内部类。根据我在Mozilla网站上看到的和the Rhino project repo,犀牛本身没有sun.*课程,AFAICT。

+0

固定。一旦我看到他们确实没有太阳课,我就修好了包装。 – helsont