由于我对Eclipse和Java相对较新,因此在命名上留下了任何错误。在添加外部.java和.class文件后获取NoClassDefFoundError异常
我正在编写一个实现外部API(Amazon Web Service API)的Android应用程序。下载的API文件包括一个包含.class文件的目录和一个包含.java文件的目录。
在添加这些作为依赖,我也做了以下内容:包含.java文件
Eclipse的>项目属性 - > Java构建路径 - >来源 - >链接源 - >选择目录。
Eclipse-> project properties-> java build path-> libraries-> add external class folder->选择包含.class文件的目录。
在这个配置下编译时,我得到以下错误:
java.lang.IllegalArgumentException: already added: Lcom/ECS/client/jax/VariationSummary;
Conversion to Dalvik format failed with error 1
重复错误一次每类文件。
要解决此问题,我删除了对外部类文件夹的引用,并且程序编译并运行。一旦然而到达代码段使用的API的方法之一,我得到了以下错误崩溃:
01-15 15:29:20.756: E/AndroidRuntime(1038): java.lang.NoClassDefFoundError: com.ECS.client.jax.AWSECommerceService
编辑
完整的堆栈跟踪:
01-15 17:12:28.256: W/dalvikvm(1227): Unable to resolve superclass of Lcom/ECS/client/jax/AWSECommerceService; (365)
01-15 17:12:28.296: W/dalvikvm(1227): Link of class 'Lcom/ECS/client/jax/AWSECommerceService;' failed
01-15 17:12:28.296: E/dalvikvm(1227): Could not find class 'com.ECS.client.jax.AWSECommerceService', referenced from method com.giftme.Amazon.searchRequest
01-15 17:12:28.296: W/dalvikvm(1227): VFY: unable to resolve new-instance 66 (Lcom/ECS/client/jax/AWSECommerceService;) in Lcom/giftme/Amazon;
01-15 17:12:28.306: D/dalvikvm(1227): VFY: replacing opcode 0x22 at 0x0000
01-15 17:12:28.306: D/dalvikvm(1227): VFY: dead code 0x0002-0033 in Lcom/giftme/Amazon;.searchRequest (Ljava/lang/String;)Z
01-15 17:12:28.306: W/dalvikvm(1227): threadid=10: thread exiting with uncaught exception (group=0x40015560)
01-15 17:12:28.306: E/AndroidRuntime(1227): FATAL EXCEPTION: Thread-13
01-15 17:12:28.306: E/AndroidRuntime(1227): java.lang.NoClassDefFoundError: com.ECS.client.jax.AWSECommerceService
01-15 17:12:28.306: E/AndroidRuntime(1227): at com.giftme.Amazon.searchRequest(Amazon.java:21)
01-15 17:12:28.306: E/AndroidRuntime(1227): at com.giftme.Friend$InterestsRequestListener$4.parseDataAndSearch(Friend.java:359)
01-15 17:12:28.306: E/AndroidRuntime(1227): at com.giftme.Friend$InterestsRequestListener$4.run(Friend.java:329)
01-15 17:12:28.306: E/AndroidRuntime(1227): at java.lang.Thread.run(Thread.java:1019)
这里是它指的行21:
AWSECommerceService service = new AWSECommerceService();
您可以发布NoClassDefFoundError的完整堆栈跟踪吗?然后我们可以看到哪些代码需要这个特定的类。 – 2012-01-16 01:08:43
我将堆栈跟踪添加到OP。我很欣赏迄今为止的帮助。 – SemperFly 2012-01-16 02:24:29