Android - невозможно разрешить суперкласс

17

Я выкопал старый проект андроида, над которым я работал несколько лет назад, и загрузил его в новую установку 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) является одним из моих классов, который находится в приложении, поэтому я знаю, что это не проблема, но я заметил предупреждение в верхней части логарифма:

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

Приветствия     

задан rhinds 04.09.2012 в 21:56
источник

3 ответа

10

Хорошо, это была простая проблема в конце.

Добавив стороннюю библиотеку к пути сборки, вкладка экспорта не была дефолтом для экспорта jar (нормальное поведение eclipse) - поэтому банка не включалась в развертывание.

прошло мимо этой проблемы.

    
ответ дан rhinds 04.09.2012 в 22:23
источник
29

У меня была та же проблема. У меня был пользовательский класс View, который вызывал методы в импортированной библиотеке. Я также получал ошибку «Не удалось разрешить суперкласс», когда приложение пыталось создать мое представление (при попытке раздуть макет, который ссылался на этот пользовательский вид).

Я решил свою проблему, и у меня была игра, чтобы определить, на что я думаю, окончательный ответ.

(Как и при написании, я использую Eclipse Android Tools R21).

Если вы используете внешнюю банку

  • Скопируйте его в папку «libs» вашего проекта. Средства Android должны делать все остальное.

Если библиотека, которую вы хотите использовать, представляет собой отдельный проект в вашей рабочей области.

  • В вашем проекте библиотеки: перейдите в «Свойства» и «Android» и установите флажок «Является ли библиотека».
  • В вашем проекте приложения: перейдите в «Свойства» и «Android» и добавьте проект библиотеки в том же разделе (нажмите «Добавить ..»). Не проверяйте здесь «Библиотека»!

Некоторые ответы на этот вопрос говорят, что вам нужно перейти в Properties- & gt; Java Build Path- & gt; Projects и добавить туда проект библиотеки. Для нормальных Java-проектов вы это сделаете, но, похоже, Android Tools не нужны или не используют это.

Наконец, вы, вероятно, захотите убедиться, что lib включен в экспортированное приложение

  • Перейдите в меню «Свойства» и «Построить путь Java» и «Экспорт» и убедитесь, что библиотека проверена.
ответ дан Paul LeBeau 30.01.2013 в 17:58
источник
0

У меня была та же проблема, я пытался проверить частные библиотеки Android под заказ и экспорт, и это не сработало для меня. Итак, я заметил, что моя папка libs не была указана в пути Java Build Path, я просто добавил ее в библиотеки и это ...

    
ответ дан DenninDalke 27.06.2013 в 23:06
источник