java - Android 导入重叠

标签 java android eclipse rhino

我在我的 Android 项目中使用 Mozilla 的 Rhino。但是,我的 Java 版本在 JDK 中有这个库的副本。因此,我收到了错误:

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

我将完全相同的 jar 放入项目的“libs”文件夹中,但我没有运气覆盖原始库。基本上我想告诉 eclipse 停止指向 Rhino 的 JDK 版本并指向我的。无论如何我可以在不删除 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

从这两张图片可以看出,当我突出显示导入时,eclipse 说导入是从 jdk 引用的,而不是我的 .jar 文件。

编辑: 我的构建路径。 Java Build Path/Libraries in eclipse

最佳答案

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

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

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

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

关于java - Android 导入重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24356278/

相关文章:

java - 如何确保 JTextField 只包含字母?

java - MTN 移动货币整合

java - 使用 Java 运行 Shell 命令会出现问题

android - Android 项目的 Eclipse Gradle 导出不执行任何操作

java - Android Realm 不正确的线程

java - gwt 应用程序突然停止运行

java - 用imageview线性布局覆盖textview

java - 究竟什么是串口通信?

java - 出现奇怪的 java.lang.NoSuchMethodError 错误

android - 异步任务 : doInbackground() not called with executeOnExecutor and execute