Подтвердить что ты не робот

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

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

Приветствия

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

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

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

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

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

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

  • Перейдите в меню "Свойства" > "Путь сборки Java" → "Заказ и экспорт" и убедитесь, что библиотека проверена.

Ответ 3

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