【问题标题】:Unable to resolve superclass error when referencing .jar library引用 .jar 库时无法解决超类错误
【发布时间】:2011-09-04 08:38:17
【问题描述】:
  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;)

【问题讨论】:

    标签: android classnotfoundexception android-library


    【解决方案1】:

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

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

    【讨论】:

    • 更多信息here
    • 多么浪费一个错误。在打破我的头之前应该搜索谷歌。谢谢@rabidgremlin
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        你在使用eclipse吗?如果是这样,您是否按照Adding a library/JAR to an Eclipse Android project 中所述将库添加到构建路径?

        【讨论】:

        • 是的,我创建了 Web 服务 java 应用程序的 jar 并将其添加为 ADD EXTERNAL JAR
        • JAR 中是否定义了 web.service.RandomWordGeneratorService 类?
        • yes :( 我还创建了一个 libs 文件夹,如链接中所示,并将我的 jar 放在那里。我仍然得到同样的错误 :(
        【解决方案5】:

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

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

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

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

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2015-04-27
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2022-09-19
                • 1970-01-01
                • 2017-09-04
                相关资源
                最近更新 更多