引用.jar库时无法解析超类错误

时间:2011-05-29 16:18:53

标签: android classnotfoundexception android-library

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

    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;)
    

7 个答案:

答案 0 :(得分:71)

升级到ADT 17后刚刚开始解决此问题。

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

答案 1 :(得分:14)

在我的情况下,我必须转到Properties->Java Build Path->Order and Export并检查Android Private Libraries,然后清理项目并正常工作。

答案 2 :(得分:4)

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

答案 3 :(得分:2)

你正在使用eclipse吗?如果是这样,您是否按照Adding a library/JAR to an Eclipse Android project

中的说明将库添加到构建路径中

答案 4 :(得分:2)

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

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

只是一个FYI以防有人来看。干杯!

答案 5 :(得分:1)

我遇到了同样的问题,我试图在订单和导出下标记Android私有库,但它对我不起作用。然后我注意到我的libs文件夹没有在Java Build Path下引用。所以我把它添加到了图书馆并且它有效。

答案 6 :(得分:-1)

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

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