У меня возникла проблема при попытке запустить приложение для Android, которое до добавления второй внешней библиотеки в путь сборки работало нормально. С тех пор, как я добавил jar Scoreninja, я теперь получаю NoClassDefFoundError при попытке запустить приложение.
Вот сообщение:
02-11 21:45:26.154: ERROR/AndroidRuntime(3654): java.lang.NoClassDefFoundError: com.scoreninja.adapter.ScoreNinjaAdapter
Поскольку все сценарии сборки генерируются инструментами Android (?), Я не уверен, что еще я могу сделать, кроме очистки и перестройки или перезапуска затмения (я уже попробовал все три). Кто-нибудь знает, как я могу это исправить?
Ответы:
У меня была эта проблема после обновления ADT.
Я сохранял все мои JAR-файлы в папке с именем «lib» и добавлял jar-файлы в путь сборки обычным способом Eclipse. Это работало нормально до моего обновления.
После моего обновления я получал NoClassDefFoundError для класса, который, как я мог видеть, был включен в jar (проверяя классы ReferencedLibraries).
Решением было удалить мои файлы jar из пути сборки и переименовать мою папку "lib" в "libs". Это соглашение муравья, и похоже, что новый ADT находит и включает библиотеки в файл .apk. Как только я это сделал, все работало нормально.
источник
Мне не нужно было помещать jar-библиотеку в assets или lib (s), а только поставить галочку для этого jar-файла в Свойствах -> Путь сборки Java -> «Порядок и экспорт» (он был указан ранее, но не выбран). )
источник
Добавление внешнего jar-файла в путь сборки просто добавляет jar-файл в ваш пакет, но он не будет доступен во время выполнения.
Чтобы баночка была доступна во время выполнения , вам необходимо:
assets
папкуисточник
import
отчет для внешних файлов JAR? Я никогда не использовал их.assests
папки?У меня было это для MapActivity. Сборки в Eclipse получают NoClassDefFound в отладчике.
Забыли добавить библиотеку в манифест, внутри
<Application>...</Application>
элементаисточник
Я изменил порядок включенных проектов (Eclipse / Configure Build Path / Order and Export). Я переместил два моих зависимых проекта в начало списка «Заказ и экспорт». Это решило проблему "NoClassDefFoundError".
Это странно для меня. Я не слышал о важности порядка включения библиотек и проектов. Android + Eclipse это весело :)
источник
Я не уверен, связано ли это, или вы все еще ищете ответ, но я наткнулся на эту тему, пытаясь исследовать ту же ошибку (но, возможно, по разным причинам).
Я не мог найти какие-либо решения в Интернете, но ответ на похожую тему заставил меня задуматься и понял, что мне, вероятно, просто нужно перестроить (или очистить) проект.
В Eclipse перейдите в Project => Clean. Выберите свой проект, и Eclipse, похоже, исправит его сам. Для меня это решило проблему.
Надеюсь это поможет.
источник
Application
класс, что приводит к другой ошибке.Я столкнулся с той же проблемой. Причина была в том, что библиотека, которую я пытался использовать, была скомпилирована со стандартным JDK 7.
Я перекомпилировал его с
-source 1.6 -target 1.6
опциями, и он работал нормально.источник
То же самое сработало для меня: Свойства -> Путь сборки Java -> «Порядок и экспорт» Интересно - почему это не делается автоматически? Я думаю, что некоторые настройки отсутствуют. Также это случилось для меня после обновления SDK.
источник
Щелкните правой кнопкой мыши папку вашего проекта, найдите Свойства в пути сборки Java и выберите файлы jar, которые вы видите. Это сработало для меня.
источник
Джон О'Коннор прав с этим вопросом. Проблема остается с установкой ADT 17 и выше. Нашел ссылку для исправления ошибки:
http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17
источник
Я попробовал все из этого поста (и некоторых других постов), и это не сработало для меня, это, безусловно, самое ужасное обновление ADT, которое я когда-либо испытывал, и я никогда не буду обновляться без работающей резервной копии ADT.
Мне удалось решить эту проблему, удалив проект, а затем добавив его снова, используя исходную резервную копию, которая у меня была.
источник
У меня была такая же ошибка с ADT22. Решено проверять «Частные библиотеки Android» в свойствах -> Путь сборки Java -> Порядок и экспорт. Если вы используете какие-либо библиотечные проекты, то же самое должно быть сделано и для них.
источник
Все существующие ответы не работают для меня, потому что мой случай немного отличается. Мне понадобилось несколько часов, чтобы заставить его работать. Я использую Затмение.
Мой проект Android включает в себя еще один обычный проект Java 1.6, который требует стороннего файла JAR. Хитрость заключается в следующем:
Надеюсь, что это поможет тем, у кого есть похожие сценарии, как у меня.
источник
иногда вам нужно взять весь внешний проект как библиотеку, а не только jar:
Моя проблема была решена путем добавления всего проекта (в моем случае google-play-services_lib) в виде библиотеки, а не только фляги. шаги к нему (из @style answer ):
источник
Иногда это происходит из-за того, что в вашем AndroidManifest.xml отсутствует тег jar, от которого вы зависите, с тэгом «util-libary».
Также убедитесь, что он должен быть внутри тега «application».
С Уважением,
Ravi
источник
У меня была эта проблема, и она была вызвана тем, что она не «экспортировала» библиотеку. Проблема состояла только в том, что файлы .class для некоторых классов недоступны при упаковке APK. Время компиляции будет работать без экспорта
В моем случае я использовал класс "CusrsorAdapter", а в разделе "JavaBuildPath-> Order and Export" я не проверял поддержку V4 jar. Как только выбранная проблема исчезла.
Чтобы убедиться, что вы получаете ошибку noClassDefFound по вышеуказанной причине, пожалуйста, проверьте ваш logacat, вы увидите неизвестную ошибку суперкласса во время выполнения.
источник
На самом деле вы достигли печально известной проблемы с лимитом в 64 КБ, вам нужно включить мультидекс.
Вот как ты это делаешь. https://developer.android.com/tools/building/multidex.html
источник
Я пробовал разные вещи, и причиной ошибки в моем случае был конфликт между maps.jar и Google Api в Java Build Path-> Libraries. Итак, когда я удалил maps.jar, он работал нормально.
С Уважением,
Вахиб
источник
пожалуйста, убедитесь, что ваш jar-файл находится в каталоге libs вашего проекта, так как вы используете более новую версию ADT с затмением.
источник
У меня точно такая же проблема ... Чтобы исправить это, я просто удалил свои Android Private Libs в "пути сборки" и нажал "ОК" ... и когда я снова открыл "путь сборки", затмение снова добавило их самостоятельно, а то у меня сработало;) ...
источник
я потратил два дня, пытаясь решить эту проблему после обновления ADT. наконец, мне повезло получить этот пост здесь:
https://code.google.com/p/android/issues/detail?id=55304
что привело меня в правильном направлении. когда вы следуете решению - не забудьте заменить библиотеку поддержки Android всех ваших проектов на одну и ту же версию (удалите ее и заново установите в проекты). надеюсь это поможет - удачи
источник
Если вы предпочитаете знать, с какими файлами связано обходное решение, вот что я нашел. Просто измените файл .classpath на
Замените файл .classpath во всех проектах библиотеки и в основном проекте Android. Файл .classpath находится в корневой папке проекта eclipse. Конечно, не забудьте добавить свои собственные записи пути к классам, если они у вас есть (так что сравните с текущей версией .classpath).
Я полагаю, что это тот же результат, что и при просмотре меню eclipse, как было объяснено выше пользователем componentavt (Eclipse / Configure Build Path / Order and Export).
источник
Решение здесь сработало для меня. Это вопрос импорта библиотеки в папку libs, изменения файла build.gradle и очистки с помощью gradlew.
источник
Если вы измените свой заказ и экспортируете в путь сборки вашего проекта, эта ошибка не возникнет. Другой способ добиться этого - через .classpath в папке вашего проекта.
источник
Попробуй это:-
Шаг 1
Добавить все библиотеки для сборки pat в Eclipse (значит сделать все библиотеки ссылками на библиотеки)
Шаг 2
Удалите файл R.java и снова соберите проект. Не волнуйтесь, R.java автоматически воссоздается.
Холод :)
источник
Как я понял, ваш проект не показывает ошибок, потому что вы включили Jar. Но Jar не будет использоваться, когда ваш проект будет «экспортирован» на устройство. Попробуй это
Проект -> Недвижимость
Путь сборки Java / порядок и экспорт
[✔] Ваша банка
источник
Это случается довольно часто со мной.
Последнее, что я помню, было вызвано переключением Eclipse ADT (специальный выпуск Google) на Android Studio и переключением обратно. Я в основном перепробовал все методы, которые я могу найти в stackoverflow, которые не работали для меня.
В конце концов я снова запустил приложение (не более NoCalssDeffoundError), переключив мою IDE на оригинальный Eclipse (Kepler) с ADT.
источник