Ссылочное скомпилированное обновление проекта Java не обновляет проект библиотеки Android - PullRequest
2 голосов
/ 27 октября 2011

У меня есть Android Project (A), это мое основное приложение, оно ссылается на Android-библиотеку Project (B). Библиотечный проект ссылается на стандартный проект Java (C), который является моей стандартной библиотекой для многих проектов Java и Android. Я буду ссылаться на эти три проекта как A, B и C.

Моя проблема в том, что если я внесу изменение в проект C, он будет автоматически скомпилирован, но B не скомпилируется, следовательно, A не увидит изменений. Единственный способ сделать это - очистить B вручную. Есть ли в Eclipse способ заставить B перекомпилироваться при компиляции C?

Использование Eclipse 3.6.2 с ADT 14 и SDK 14.

Ответы [ 3 ]

2 голосов
/ 24 ноября 2011

У меня также была эта проблема с ADT 14. В моем случае у меня меньше косвенного обращения (проект A - это библиотека PLAIN Java (не библиотека Android), проект B - приложение Android).

Что было действительно весело, так это то, что у меня было два проекта "B" (два приложения для Android), и одно работало.Другой был точной копией (с небольшими изменениями для бета-версии), включая копию файлов проекта.

Он скомпилирован нормально, но не смог упаковать файлы библиотеки в бета-версии.

Я удалил проект (не удаляя файлы) и снова добавил его.Затем я также перенастроил путь сборки приложения и удалил библиотеку Java.Затем я перенастроил его снова и снова добавил.

Очистите / соберите, и он снова начал правильно их упаковывать.

Я также выполнил трюк с порядком сборки, упомянутый ранее ... Сам по себе он не помог, но, возможно, способствовал более позднемуОбновление eclipse работает (убедитесь, что проект библиотеки построен раньше других).

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

Я попробовал принятый ответ с проектом B (Android), ссылаясь на проект A (обычный Java). После удаления и повторного добавления проекта B в рабочую область, удаления проекта A из необходимых проектов проекта B, повторного добавления проекта B, отметки проекта B в порядке / экспорте проекта A и перемещения его наверх и, наконец, очистки / сборки всего, мой проблема не была решена. После очистки и сборки все было в курсе. Но когда IU что-то изменил в A, изменения не были видны в B.

Мое решение:

В пути сборки проекта Android: - выберите вкладку источника - нажмите ссылку источник - выберите папку src проекта Java. Назовите его связанныйLibrarySource - применять, чистую сборку - успех

Это решение далеко не идеальное, и я советую сначала попробовать другие решения.

Есть недостаток: eclipse теперь добавляет папку relatedLibrarySource в ваш проект Android. Он содержит те же файлы, что и папка src вашей библиотеки. Затмение видит их как разные. Это означает, что вы можете редактировать один и тот же файл в двух местах, вызывая конфликты. Так что не трогайте связанный источник библиотеки!

Я использую ADT 20

0 голосов
/ 09 сентября 2012

У меня была точно такая же проблема с ADT 20. Комбинируя комментарии с принятым ответом, я обнаружил, что перемещение библиотечного проекта первым в свойствах проекта -> Путь сборки Java -> Порядок и экспорт решило его.

...