4

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

警告:忽略不带有关联 EnclosureMethod 属性的匿名内部类 (org.apache.commons.collections.BeanMap$1) 的 InnerClasses 属性。此类可能是由不针对现代 .class 文件格式的编译器生成的。推荐的解决方案是从源代码重新编译类,使用最新的编译器并且不指定任何“-target”类型选项。忽略此警告的后果是此类上的反射操作将错误地指示它不是内部类。

它最后说:

6 个警告 1 个错误;aborting /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

我添加了所有库:

  • commons-codec-1.4.jar
  • commons-collections-3.2.1.jar
  • commons-io-2.0.1.jar
  • commons-lang-2.6.jar
  • commons-logging-1.1.1.jar
  • cssparser-0.9.5.jar
  • htmlunit-2.9.jar
  • htmlunit-core-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-apis-1.3.04.jar

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

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

4

3 回答 3

0

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

于 2012-05-23T21:00:55.653 回答
0

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

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

IE

项目/库/

于 2012-05-21T04:05:16.710 回答
0

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

于 2015-04-02T23:27:54.820 回答