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

Android java.lang.NoClassDefFoundError

У меня есть проект Android в Eclipse IDE, который работал. После некоторого импорта и тестов я получаю сообщение об ошибке: java.lang.NoClassDefFoundError.

В моем проекте у меня есть два пакета: основной и второй с некоторыми классами.

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

Вот logcat:

FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.neurospeech.wsclient.MDPIforEditorialBoard
at milos.mdpi.Journals.<init>(Journals.java:41)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1409)
at android.app.Instrumentation.newActivity(Instrumentation.java:1040)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1777)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:4389)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
at dalvik.system.NativeStart.main(Native Method)

Найден решение моей проблемы:

Решение можно найти здесь: http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

4b9b3361

Ответ 1

Недавно вы обновили плагин eclipse android (adt r17)? Тогда следующая ссылка может помочь:

Как исправить classdefnotfounderror с помощью adt-17

Обновление: Прошел год с тех пор, как возник вопрос. Я сохраню ссылку, потому что даже в 2013 году это помогает некоторым людям решить эту проблему. Но, пожалуйста, позаботьтесь о том, что вы делаете, см. Комментарий Эрики ниже. Текущая версия ADT - 22, я рекомендую использовать самую последнюю версию.

Ответ 2

Отредактируйте путь сборки в этом порядке, это сработало для меня.

Убедитесь, что /gen находится перед /src

enter image description here

Ответ 3

Я исправил проблему, просто добавив в нее частные библиотеки основного проекта:

Project Properties->Java Build Path->Order And Export

И убедитесь, что Android Private Libraries отмечены.

Скриншот:

enter image description here

Убедитесь, что отмечены google-play-services_lib.jar и google-play-services.jar. Очистите проект и запустите его, а исключение classNotfound исчезнет.

Ответ 4

Imaage

Перейдите в раздел "Заказ и экспорт из свойств проекта" и убедитесь, что вы включили необходимые банки в экспорт, это сделало это для меня

Ответ 5

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

переместите Android на верхнюю часть вкладки "Заказ и экспорт" и отмените выбор.

Да, это действительно имеет значение. Может быть, мне пора перерезать ADT для Android Studio!

Ответ 6

Вы также можете получить эту ошибку, если попытаетесь включить банку, которая была скомпилирована с помощью jdk 1.7 вместо 1.6.

В моем случае я понял это, пытаясь упаковать свое приложение с помощью сценариев Ant, предоставленных SDK, вместо ADT, и я заметил эти ошибки, которые ADT мне не показывал:

  [dex] Pre-Dexing libjingle_peerconnection.jar -> libjingle_peerconnection-2f82c9bf868a6c58eaf2c3b2fe6a09f3.jar
   [dx]
   [dx] trouble processing:
   [dx] bad class file magic (cafebabe) or version (0033.0000)
   [dx] ...while parsing org/webrtc/StatsReport$Value.class
   [dx] ...while processing org/webrtc/StatsReport$Value.class

Я перекомпилировал свою банку с помощью jdk 1.6 и исправлена ​​ошибка.

Ответ 7

Попробуйте Project -> Properties -> Java Build Path -> Order & Export И Подтвердить частные библиотеки Android проверяются для вашего проекта и для всех других проектов библиотек, которые вы используете в своем приложении.

Ответ 8

После проверки пути сборки Java, затем добавьте строки кода в файл манифеста.

<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />