Проект библиотеки Android не компилирует свои (проект java) зависимости в свой jar

1

У меня есть андроидный libary project - MonitoringModel - который зависит от обычного проекта java - Helpers (зависимость была установлена ​​в пути сборки java > Проекты. Проект Helpers был отмечен на вкладке "Заказ и экспорт" MonitoringModel). MonitoringModel создает банку, которую я отбрасываю в папку libs проекта сервлета, как описано здесь. Все было хорошо, пока сервлет не нуждался в методе из проекта Helpers:

Caused by: java.lang.NoClassDefFoundError: gr/uoa/di/java/helpers/Utils
 at gr.uoa.di.monitoring.model.Battery$BatteryFields$1.parse(Battery.java:59)
 at gr.uoa.di.monitoring.model.Battery$BatteryFields$1.parse(Battery.java:1)
 at gr.uoa.di.monitoring.model.Battery.parse(Battery.java:117)
 ... 24 more
Caused by: java.lang.ClassNotFoundException: gr.uoa.di.java.helpers.Utils
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)


Тогда я понял, что экспортированная банка (из MonitoringModel) не имела пакетов Helpers. Проект Helpers не создает никакой банки, поэтому я попытался добавить его папку bin/ как Добавить классную папку)


Изображение 174551

добавив его также в вкладку "Заказ и экспорт":

Изображение 174551

но до сих пор нет радости.

Итак, как мне настроить это?

RECAP: Что мне нужно - это добавить обычный проект java в проект библиотеки андроидов и как-то скомпилировать его в банке проекта андроидной библиотеки. Проблема заключается не в том, что классы (java) не экспортируются - так как методы, которые используют эти классы Java, не скомпилированы в банке правильно. Поэтому, когда они называются, исключение выше бросается. Метод Battery$BatteryFields$1.parse здесь.

NB: добавление проекта Helpers непосредственно в проект сервлетов не предотвращает исключение. Исключение выбрано, потому что, когда MonitoringModel.parse() вызывает Helpers.listToString(), последнего нигде не найти в monitoringmodel.jar
На данный момент мне пришлось просто добавить (см. "Копировать вставить" ) пакеты Helpers в MonitoringModel.

  • 0
    Есть какие-нибудь обновления по этому поводу?
  • 0
    @MLProgrammer-CiM: MLProgrammer-CiM: К сожалению, нет - но я все еще заинтересован в ответе. Не стесняйтесь размещать награду: D
Показать ещё 2 комментария
Теги:
android-library

1 ответ

0

Вам нужно скомпилировать ваш Java-проект помощника и экспортировать JAR, как обычный Java JAR

Затем вы должны добавить эту JAR для просмотра папки LIBS для Android-библиотеки Android.

Теперь вы можете добавить мониторную библиотеку Android в другой проект (из библиотеки Android Libraries), и у вас будут источники, которые вам нужны.

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

  • 0
    Спасибо за ответ, но, пожалуйста, прочитайте более внимательно - хотя я изначально использовал вкладку «Проекты», я переключился на вкладку «Библиотеки» - и самое важное: я хочу использовать MonitoringModel в проекте NON android - это возможно, как я уже сказал в вопросе (ссылка еще раз) здесь . Я очень заинтересован в этом - может быть, пост в группе разработчиков Android в порядке.
  • 0
    Также, пожалуйста, предоставьте более подробные инструкции по использованию проекта помощников - желательно каким-то автоматическим способом (муравей?).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню