Android上的HtmlUnit:依赖关系

时间:2012-04-26 00:22:37

标签: java android htmlunit noclassdeffounderror

代码在普通的Java项目中工作,但如果我在Android上尝试复制库(.jar)依赖项,它将无法构建:

  

警告:忽略匿名内部类的InnerClasses属性   (org.apache.commons.collections.BeanMap $ 1)没有附带   关联的EnclosingMethod属性。这堂课可能是由一个   没有以现代.class文件格式为目标的编译器。推荐   解决方案是使用最新的编译器从源代码重新编译类   并且没有指定任何“-target”类型选项。无视的后果   这个警告是这个类的反射操作会不正确   表明是一个内部类。

最后说:

  

6个警告   1错误;中止   /home/kp/android-sdk-linux/tools/ant/build.xml:818:执行此行时发生以下错误:   /home/kp/android-sdk-linux/tools/ant/build.xml:820:执行此行时发生以下错误:   /home/kp/android-sdk-linux/tools/ant/build.xml:832:执行此行时发生以下错误:   /home/kp/android-sdk-linux/tools/ant/build.xml:278:null返回:1

我添加了所有库:

  • 公地编解码器-1.4.jar
  • 公地集合-3.2.1.jar
  • 公地-IO-2.0.1.jar
  • 公地琅2.6.jar
  • 共享记录-1.1.1.jar
  • cssparser-0.9.5.jar
  • 的HtmlUnit-2.9.jar
  • 的HtmlUnit核-JS-2.9.jar
  • 的HttpClient-4.1.2.jar
  • 的HttpCore-4.1.2.jar
  • httpmime-4.1.2.jar
  • nekohtml-1.9.15.jar
  • SAC-1.3.jar
  • 串行 - 2.7.1.jar
  • 的Xalan-2.7.1.jar
  • xercesImpl-2.9.1.jar
  • XML的API-1.3.04.jar

如果我删除了一些依赖项,它将构建但是当它尝试执行我的代码_client = new WebClient();时,我得到noClassDefFoundError错误。

我还没有找到解决方案,所以如果你有解决方案请分享!

3 个答案:

答案 0 :(得分:0)

我的猜测是你的HTMLunit jar没有放在Android项目的libs文件夹中。

您应该在项目的根目录下创建一个libs文件夹(使用确切的拼写),并将所有HTMLUnit jar放在该文件夹下。

即。

项目/库/

答案 1 :(得分:0)

我通过选中Eclipse构建路径对话框的“Order and Export”选项卡中添加的所有库旁边的框来解决noClassDefFoundError错误。我认为这包括.apk中的.jars,以便您可以在设备上使用它们。

答案 2 :(得分:0)

对我有用的是删除以下内容: xalan的-2.7.1.jar xercesImpl-2.9.1.jar XML的API-1.3.04.jar