【问题标题】:Android - Unable to resolve superclassAndroid - 无法解析超类
【发布时间】:2016-02-10 15:12:52
【问题描述】:

我挖出了几年前我在做的一个旧的 android 项目,并将它加载到一个新的 eclipse 安装中(最新的 ADT 等)。

项目编译正常(经过一些小的调整),应用程序启动正常,但是,当我按下按钮启动主要活动时,我得到以下堆栈跟踪:

FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.tmm.android.activities.GameActivity
    at com.tmm.android.activities.StartActivity.onClick(StartActivity.java:53)
    at android.view.View.performClick(View.java:2408)

现在有问题的课程 (GameActivity) 是我在应用程序中的课程之一,所以我知道这不是问题 - 但我注意到 logcat 顶部有一个警告:

Unable to resolve superclass of Lcom/tmm/android/activities/GameActivity; (33)
Link of class 'Lcom/tmm/android/activities/GameActivity;' failed

我的 GameActivity 类扩展了另一个类,该类是我已包含在项目中的第三方 jar 的一部分(将其包含在“libs”目录中,并将其添加到 eclipse 中的项目构建路径中)。

谁能告诉我我可能做错了什么,或者我可能需要考虑的 ADT/etc 中的任何更改(当我上次在 Eclipse 中使用它时它工作正常)

干杯

【问题讨论】:

  • 听起来有一个超类所依赖的依赖项没有安装。
  • 这确实让我想到了,但它与我上次启动应用程序时使用的 jar 相同,所以看起来很奇怪,它会有所不同 - 除非 android 库已更改?有什么简单的方法可以调试到底缺少什么?

标签: android eclipse


【解决方案1】:

我遇到了同样的问题。我有一个自定义 View 类,它调用导入库中的方法。 当应用程序尝试创建我的视图时(同时尝试扩展引用该自定义视图的布局),我也收到“无法解析超类”错误。

我解决了我的问题,并尝试确定我认为的最终答案。

(在撰写本文时,我使用的是 Eclipse Android Tools R21)。

如果您使用的是外部 jar

  • 将其复制到项目的“libs”文件夹中。剩下的工作应该由 Android 工具完成。

如果您要使用的库是工作区中的单独项目。

  • 在您的库项目中:进入 Properties->Android 并选中“Is Library”复选框。
  • 在您的应用程序项目中:进入 Properties->Android 并在同一部分添加库项目(单击“添加..”)。不要在这里勾选“Is Library”!

这个问题的一些答案说您需要转到 Properties->Java Build Path->Projects 并在那里添加库项目。对于普通的 Java 项目,您会这样做,但 Android 工具似乎不需要或使用它。

最后,您可能需要确保该库包含在您导出的应用程序中

  • 转到 Properties->Java Build Path->Order and Export 并确保检查库。

【讨论】:

  • OMG 给你一百万个赞,先生!!!添加库... *facepalm。由于某些奇怪的原因,正常添加项目不起作用。
  • 最重要的部分是转到 Properties->Java Build Path->Order and Export 并确保检查库。以前不需要,似乎从工具 R21 或 R22 开始需要
  • 谢谢。遇到烦人的错误,花了我 10 个小时的工作:支持库是从另一个项目引用的,在编译时一切都很好,但在运行时,没有找到 MainActivity(MainActivity 是从支持库中的一个类扩展而来的)。跨度>
  • 感谢您解决了一个困扰了我几个小时的问题。通过Properties > Android > Library > Add 添加库项目对我有用
【解决方案2】:

好的,最后是一个简单的问题..

将第 3 方库添加到构建路径后,导出选项卡未默认导出 jar(eclipse 正常行为) - 因此 jar 未包含在部署中..

解决了这个问题。。

【讨论】:

  • 我还必须将第 3 方库放在导出列表的顶部
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    相关资源
    最近更新 更多