NoClassDefFoundError для кода в библиотеке Java на Android - PullRequest
75 голосов
/ 30 декабря 2011

Я часто сталкиваюсь с ошибкой среди моих пользователей.Приложение вылетает при запуске.Когда предполагается, что MainActivity загружена, виртуальная машина не может найти класс.Я не могу понять, почему.Архитектура приложения такова, что существует общий проект, который используют и моя бесплатная, и профессиональная версия.Не знаю, актуально ли это.Смотрите трассировку стека ниже.Есть мысли?

java.lang.NoClassDefFoundError: com.android.common.MainActivity
at com.mycompany.myapp.Splash.onCreate(Splash.java:23)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
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:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.android.common.MainActivity in loader     dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/com.android.pro-1.apk]

Редактировать: Спасибо за комментарий ниже, Ричард.Теперь я изменил com.android.Splash на что-то другое.Во всяком случае, это было не настоящее имя класса.Мой плохой ...!

Ответы [ 24 ]

0 голосов
/ 10 мая 2014

Если ничего из вышеперечисленного не работает (как это случилось со мной), и вы используете в качестве библиотеки другой проект в Eclipse.

Сделайте так: Щелкните правой кнопкой мыши проект -> Свойства -> Android ->Библиотека -> Добавить

Вот и все! Добавление проекта в виде библиотеки (Свойства проекта)

0 голосов
/ 01 мая 2014

Некоторое время java.lang.NoClassDefFoundError: ошибка появляется при использовании ART вместо среды выполнения Dalvik. Чтобы изменить время выполнения, просто зайдите в Option Developer -> Select Runtime -> Dalvik.

0 голосов
/ 19 января 2014

Для меня проблема заключалась в том, что указанная библиотека была построена с использованием Java 7. Я решил эту проблему путем перестройки с использованием 1.6 JDK.

0 голосов
/ 06 ноября 2013

банок раньше были в папке lib /, теперь они в libs / Если вы используете lib, вы можете переместить ваши jar-файлы из lib в libs и удалить зависимости из свойств проекта / пути сборки java, потому что теперь Android найдет их автоматически.

...