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

Внешняя ссылка на проект в android

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

все строит и развертывает отлично, но когда я пытаюсь запустить приложение и создать экземпляр класса в этом проекте, я получаю java.lang.NoClassDefFoundError errrrrr.

Я не эксперт по java-проектам, поэтому я предполагаю, что я поднял что-то простое. любые идеи?

4b9b3361

Ответ 1

В Eclipse перейдите в "Android-Project" → "Свойства" → "Путь сборки Java" → "Заказ и эксперт", затем выберите проект java, который вы хотите импортировать, и переместите его поверх всех записей.

Ответ 2

Существует несколько способов решения этой проблемы. Вы можете проверить свою библиотеку как библиотеку Android: Щелкните правой кнопкой мыши по проекту/свойствам/вкладке Android - "is library".

А затем в вашем основном проекте: Щелкните правой кнопкой мыши по проекту/свойствам/вкладке Android → Добавить (и добавить проект библиотеки).

Однако сначала ваша библиотека должна быть создана как проект Eclipse Android (так что раздел "Android" будет доступен в свойствах проекта).

Я сделал это, и у меня больше нет NoClassDefFoundError. Тем не менее это решение хорошо для раннего развития. Если библиотека стабильная, вы должны сделать банку и включить ее в основной проект (и удалить ссылки на Android-библиотеку).

Ответ 3

У меня похожие проблемы. У меня есть старый проект, который я использую в качестве пространства имен для некоторых математических и трехмерных функций. Я хотел бы поделиться этим между Android и другим кодом Java. Беда в том, что проклятая вещь падает, как только я запускаю даже тип POD из моей библиотеки. Мой внешний проект не создает файл jar; он используется только как пространство имен. Я предполагаю, что некоторые проблемы со связями во время выполнения, вызывающие это, но андроид, eclipse и java, в совокупности дают мне огромное количество никакой помощи.

Ответ 4

У меня такая же проблема. Небольшие исследования привели меня к Библиотечному проекту, упомянутому также в этом посте. Но помните об этом:

"Вы также можете обозначить проект Android как проект библиотеки, который позволяет ему делиться с другими проектами, которые зависят от него. Когда проект Android обозначается как проект библиотеки, он не может быть установлен на устройство.

Вы можете найти дополнительную информацию:

http://developer.android.com/tools/projects/projects-eclipse.html

а также

https://groups.google.com/forum/?fromgroups#!topic/android-developers/C0pddRNGZVs

Ответ 5

Недавно я столкнулся с очень похожими и, возможно, одной и той же проблемой. Android не любит ссылки на проекты и бросает эти рефлексы отражения, если вы попробуете, чтобы ваш проект андроида ссылался на другой проект.

Он также не хочет иметь баночки на пути сборки, вам нужно экспортировать проекты, которые вы хотите включить в свой проект android, и поместить их в папку /libs. Эта папка обычно создается, когда проект создается, если не просто сделать это самостоятельно, он входит в корень вашего проекта. Android автоматически подберет их, если они там.

Также очень важно, если ваш внешний проект также зависит от других проектов, вам также нужно экспортировать эти другие проекты, а также разместить банки в папке /libs проекта Android.

Это относится к новейшей версии Android от 22/07/2012. Он может не применяться, если вы используете более старую версию Android.

Ответ 6

Возможно, вам придется включить JAR скомпилированного источника вашего зависимого проекта вместе с родителем. Android должен будет иметь файлы классов, чтобы он мог перекомпилировать их в байт-код Dalvik, а затем сделать их доступными в пути к классам.

Это видео может помочь вам, взяв этот вопрос.

Ответ 7

Если ваш внешний проект зависит от других банок в своем пути к классам, убедитесь, что они экспортированы и нажмите их в верхней части списка экспорта в Eclipse. У меня была такая же ошибка NoClassDef, которая была брошена на класс, который был в проекте, но реальная проблема заключалась в том, что порядок экспорта банок зависел от него. Работала хорошо после того, как я исправил это.

Ответ 8

Контекст: разработка веб-сайта JSP, который взаимодействует с несколькими устройствами Android в Интернете. Требуется общие классы.

Сделанные шаги:

Для проекта java, содержащего ваши общие классы:

1) (ничего не делать)

В вашем проекте Android App:

1) Свойства проекта- > Java Build Path- > Projects tab- > Добавить...

2) Свойства проекта → Ссылки на проекты → установите соответствующий флажок

3) [Как говорит Мэтью выше (и это было именно то, что мне было нужно)] "Android-Project" → "Свойства" → "Путь сборки Java" → "Заказ и эксперт", затем выберите проект java, который вы хотите импортировать и перемещать он поверх всех записей.

Для вашего проекта веб-сайта JSP:

1) Свойства проекта- > Java Build Path- > Projects tab- > Добавить...

2) Свойства проекта → Ссылки на проекты → установите соответствующий флажок