2012-03-26 4 views
55

У меня есть проект Android в Eclipse IDE, который работал. После некоторых импортов и тестов я получаю сообщение об ошибке: java.lang.NoClassDefFoundError.Android 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

+5

Вы обновили свой Android-плеер до 17? – pleerock

+0

Да @Pleerock, ответ Минского разрешил проблему. Большое спасибо. –

+0

Проверьте этот вопрос. Работал для меня! http://stackoverflow.com/questions/16641739/android-error-caused-by-java-lang-noclassdeffounderror-android-support-v4-ut – MSquare

ответ

55

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

How to fix the classdefnotfounderror with adt-17

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

+0

Отлично, это решило мою проблему, спасибо большое. –

+1

Это тоже работало для меня, но мне пришлось временно переключить цель проекта (с 2.2 -> 4.0.3 в моем случае), чтобы он вступил в силу. Возможно, это связано с тем, что мои библиотеки уже были сохранены в каталоге с именем «libs» –

+2

ВНИМАНИЕ. Эта ссылка говорит, чтобы избавиться от всего на вкладке «Библиотеки», если вы будете следовать этим указаниям и избавиться от виртуальной папки «Android Dependencies», вы должен будет создать новый проект и восстановить вашу программу с нуля, чтобы вернуть ее. –

17

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

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

и убедитесь, что Android Частных библиотек проверяются.

Скриншот:

enter image description here

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

+0

, которые исправили его для меня. Благодарю. FYI, это произошло после отбрасывания изменений, внесенных в файл .classpath проекта через GIT, и выбор «Частные свойства Android» снова фактически добавляет эти две дополнительные строки обратно в .classpath. – Erwan

+0

Это работает для меня. Благодарю. – adrian4aes

1

Imaage

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

27

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

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

enter image description here

+0

Каждый раз, когда я кладу/gen перед/src, eclipse ест всю память и замерзает мой компьютер – sma

1

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

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

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

1

Вы также можете получить эту ошибку, если попытаетесь включить банку, которая была скомпилирована с помощью 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 и исправлена ​​ошибка.

1

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

0

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

Смежные вопросы