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

Android - невозможно выполнить операцию - исключение класса не найдено после обновления до ADT 22

Недавно я обновил ADT до версии 22. После того, как я это сделал, я впервые получил сообщение об ошибке с моей библиотекой поддержки (которая была опиралась на другой проект библиотеки). После того как я скопировал библиотеку поддержки в свой проект и очистил все мои проекты, я продолжаю получать следующие ошибки при попытке запустить приложение:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.d.d/com.d.d.MainActivity}: java.lang.ClassNotFoundException: com.d.d.MainActivity

(Я переименовал реальное имя пакета в com.d.d)

Но то, что заставляет меня подозревать, что это является причиной изменений в библиотеке поддержки, - это следующая строка:

at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)

Это держит меня подозрительно, потому что, когда я уже возился с библиотекой поддержки, я получил много ошибок, связанных с чем-то dex.

Излишне говорить, что AndroidManifest содержит правильный путь для активности.

Любая помощь будет высоко оценена здесь. Большое спасибо.

4b9b3361

Ответ 1

Может быть дубликат этого.

Попробуйте выполнить Проект → Свойства → Путь сборки Java → Заказ и Экспорт и убедитесь, что Частные библиотеки Android проверяются для вашего проекта и для всех других проектов библиотеки, которые вы используете. Очистить все проекты потом и посмотреть, что произойдет.

Ответ 2

@Krauxe Большое спасибо за предоставление этого ответа!

Однако мне пришлось использовать слегка настроенный подход в моем Eclipse (Версия: 3.7.2).

  • Проект - Свойства - Путь сборки Java - Заказ и экспорт
  • Проверьте частные библиотеки Android (также для используемых проектов библиотеки)
  • Проект - Очистить... - Очистить все проекты

Ответ 3

Здесь нам нужно было добавить папку src в качестве исходной папки. По какой-то причине привязка исчезла.

  • Щелкните правой кнопкой мыши папку src.
  • Путь сборки → Использовать в качестве исходной папки

Ответ 4

У меня была та же проблема. Решение заключалось в том, чтобы изменить выходную папку на bin/classes.

  • Щелкните правой кнопкой мыши по проекту
  • Выберите "Свойства"
  • Перейти к пути сборки Java > Источник
  • Установить папку вывода по умолчанию для /bin/classes

Привет, Мартин

Ответ 5

если вы пробовали все ответы, все еще возникли проблемы, то, вероятно, имя активности не соответствует имени пакета в AndroidManifest.xml. например, ваш xml.

<activity
    android:name="com.tony.HomeActivity"
    android:screenOrientation="portrait" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

но HomeActivity фактически находится в пакете com.tony.ui.HomeActivity.