У меня есть несколько проектов для Android, которые используют один из моих библиотечных проектов. Я хочу, чтобы код библиотеки зависел от определенных классов конфигурации, которые по-разному определяются в проектах, которые зависят от него. Чтобы проекты, не относящиеся к lib, не сообщали об ошибках в обозревателе проектов Eclipse, это означает предоставление определений классов в каждом проекте с одинаковым полным путем.
Итак, структура выглядит так
Tablet_Project:
определяет com.mycompany.config.ClientPrefs.java
Phone_Project:
определяет com.mycompany.config.ClientPrefs.java
Lib_Project:
зависит от, но не определяет com.mycompany.config.ClientPrefs.java
Как только это будет сделано, проекты не показывают ошибок в обозревателе проектов Eclipse, но библиотека имеет красный «X», указывающий, что она может разрешить ссылку ClientPrefs - что я и ожидал, поскольку вы все равно не можете скомпилировать библиотеку не похоже на большое дело.
Проблема: Проект телефона компилируется и работает нормально, но проект планшета сообщает, что перед запуском необходимо исправить ошибку, даже если в проводнике рабочей области нет индикаторов «X».
Вопрос: Действительно ли такой подход к настройке допустим в этих проектах или тот факт, что телефонный проект работает просто случайно?
Редактировать
Вот самый простой пример, который я могу придумать:
ProjectA и ProjectB зависят от ProjectLib как проекта библиотеки Android. Как показано здесь, Util.java в ProjectLib не может разрешить отсутствующую ссылку в Config.java, но, похоже, это не имеет значения для A и B, так как они, кажется, решают эту проблему для ProjectLib и, таким образом, и собирают, и запускают. Кто-нибудь еще использовал этот подход к конфигурации?
Причина, по которой я спрашиваю, состоит в том, что у меня гораздо больший набор проектов, и один из них больше не будет собираться (в Eclipse), предположительно, поскольку в его lib-проекте есть ошибки. Сборка с помощью Ant из командной строки всегда работает, и это заставляет меня думать, что проект библиотеки втягивается в зависимый проект независимо от его границы Eclipse.