2010-06-28 5 views
8

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

+0

Я думаю, что это нормально, по крайней мере, при использовании Eclipse. Это связано с тем, что в рабочем пространстве Eclipse есть кеш ресурсов, которые он использует в проекте, поэтому он требует обновления для «обнаружения» внешних изменений. – Cristian

ответ

0

Это правда. Если ваш lib строит банку, которую вы добавили в проект Android, вам нужно будет обновить (вы также можете просто щелкнуть правой кнопкой мыши и обновить ссылку на внешнюю банку, чтобы сэкономить время).

0

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

Лучший способ, которым я мог найти, - использовать связанную библиотечную папку из зависимого проекта, над которым работает, таким образом, проект видит изменения в реальном времени. При переходе на другой зависимый проект вам все равно нужно обновить файлы, которые были изменены в другом проекте (обычно это только папка src). Возможно, вам также понадобится обновить проект библиотеки, если вы хотите внести прямые изменения. Возможно, это не похоже на большую помощь, но если вы проводите большие куски времени в одном зависимом проекте (как и было до сих пор), это действительно помогает.

+1

Ваш метод - это старый метод, используемый для совместного использования кода между проектами. Проблема заключается в том, что вы теряете возможность совместного использования ресурсов. В первую очередь использование библиотек в первую очередь заключается в том, чтобы разрешить совместное использование ресурсов (и, следовательно, распределение библиотек .jar в комплекте с ресурсами). – Vaiden

3

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

Так вот шаги:

1) Создание простой муравей файл с одной пустой мишени тупиковой:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="android" > 
    <target name="refresh" /> 
</project> 

2) Назовите его "Lib-refresher.xml" и поместить его в папку где находится файл .project приложения.

3) Теперь перейдите в eclipse, найдите проект, который использует библиотеку андроида (не сам проект библиотеки).

4) Для этого проекта перейдите по ссылке: Проект -> Свойства -> Builder

5) Создать новый построитель, выберите Ant задачу, выберите указанный "Lib-refresher.xml", выберите построить базовую папку.

6) важен - вкладка Обновить муравей задачи строителя выбрать «Конкретные ресурсы» и выбирит библиотеки зависимого проекта.

7) важно - На целевых вкладок выберите "Обновить" цели для вариантов сборки: Clean, ручной сборки, Auto Build.

8) важно - Сохранить изменения, переместите новый пользовательский муравей строитель к вершине стека строителей.

Теперь весь проект будет обновляться непосредственно перед тем, как приступить к строительству и обеду. Это будет включать все изменения, внесенные в проект библиотеки в проект приложения. Это то, что нужно.

(Это можно сделать наоборот: проект библиотеки может обновлять всю рабочую область при запуске автозапуска. Это может быть немного перебор, но может решить некоторые более сложные случаи).

+0

Работы. Следует принять – znat

1

У меня есть стенд проекта в рабочей области (Android библиотеки и Android App), и когда я сделал какие-либо изменения в библиотеке я есть необходимо обновить проект с приложением, но это фиксированная моя проблема:

(Application) project properties -> Java Build Path -> Tab Projects 

и там я добавили мою андроидную библиотеку.

Смежные вопросы