Android - 无法解析超类

时间:2012-09-04 19:56:38

标签: android eclipse

我已经挖出了几年前我正在处理的旧的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 /等中发生了什么变化(当我上次在Eclipse中使用它时工作正常)

干杯

3 个答案:

答案 0 :(得分:29)

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

我解决了我的问题,我玩了一下,以确定我认为最终的答案。

(在写作时,我正在使用Eclipse Android Tools R21)。

如果您使用的是外部广告

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

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

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

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

最后,您可能希望确保导出的应用中包含lib

  • 转到属性 - > Java构建路径 - >订单和导出,确保已选中库。

答案 1 :(得分:10)

好的,到底是个简单的问题..

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

过了那个问题好了..

答案 2 :(得分:0)

我遇到了同样的问题,我尝试检查订单和导出下的Android私有库,但它对我不起作用。那么我注意到我的libs文件夹没有在Java Build Path下引用,我只是将它添加到Libraries中,就是它......