31
  1. 我做了一个Android项目并运行它。它运行成功。
  2. 我用 Java 开发了一个 Web 服务并托管它。它运行成功。
  3. 我将 web 服务导出到 .jar 中并将其添加到我的 Android 项目中。
  4. 当我尝试调用 Web 服务中的方法时,出现Unable to resolve superclass错误。

我的错误日志:

Unable to resolve superclass of Lweb/service/RandomWordGeneratorService; (73)
Link of class 'Lweb/service/RandomWordGeneratorService;' failed 
Could not find class 'web.service.RandomWordGeneratorService',
    referenced from method tam.miru.Login$1.onClick
VFY: unable to resolve new-instance 110 Lweb/service/RandomWordGeneratorService;)
    in Ltam/miru/Login$1; 
VFY: replacing opcode 0x22 at 0x005a    
VFY: dead code 0x005c-006e in Ltam/miru/Login$1;.onClick (Landroid/view/View;)
4

8 回答 8

71

升级到 ADT 17 后才开始出现此问题。

发现外部 .jar 文件需要位于“libs”(带有 s)文件夹中,否则它们的类不包含在创建的 .dex 文件中。在升级之前,我的 .jar 文件在“lib”文件夹(没有 s)中一切正常。

于 2012-03-22T17:37:34.240 回答
14

就我而言,我必须去Properties->Java Build Path->Order and Export检查Android Private Libraries,然后清理项目并正常工作。

于 2013-06-07T01:41:31.573 回答
4

创建 lib 文件夹,libs 文件夹用于存放本地库。我做到了,将库添加到 lib 并将路径构建为内部库,它可以工作!

于 2012-01-06T00:01:13.710 回答
2

你在用日食吗?如果是这样,您是否按照将库/JAR 添加到 Eclipse Android 项目中所述将库添加到构建路径?

于 2011-05-29T20:30:26.507 回答
2

我知道这是一个非常老的帖子上的帖子,但是在阅读了@rabidgremlin 的答案后,我检查了文件夹结构,发现它已经在“libs”中。但是,在看到 support.jar 时,我认为使用它是导致问题的原因。

我正在扩展“FragmentActivity”,但事实证明,它引用了 support.jar,它本身就有问题。一旦我删除了 extends 子句,应用程序就奇迹般地停止了崩溃。

仅供参考,以防有人来找。干杯!

于 2013-05-31T15:19:06.453 回答
1

我有同样的错误信息。我花了一些时间来解决问题:Android 需要 Java 1.6 才能工作。我的 Activity 的超类实现了一个 Java 项目的接口,该项目使用 Java 1.7 作为编译器。这足以让 dex 构建器无法链接超类,从而导致找不到类异常。

于 2014-03-17T14:33:45.130 回答
1

我遇到了同样的问题,我尝试在 Order and Export 下标记 Android Private Libraries,但它对我不起作用。然后我注意到我的 libs 文件夹没有在 Java 构建路径下引用。所以我只是将它添加到库中并且它起作用了。

于 2013-06-27T21:11:18.550 回答
-1

我在 Eclipse 上遇到了这个错误的不同原因。我正在尝试将 eclipse 工作区放入 google 驱动器目录,发现某些超类无法从 android 活动中解析。

暂停谷歌驱动器,一切都开始正常工作。在我的情况下,不会加载的超类来自协议缓冲区生成的类。这个类和我测试的所有其他类在非 android java 程序中运行良好,即使在谷歌驱动器运行时也是如此。

于 2012-08-11T15:21:51.633 回答