2010-06-28 11 views
8

Gdybym dokonać zmian w moim projekcie Android Biblioteka trzeba ręcznie odświeżyć, a niekiedy oczyścić wszystkie projekty, które korzystają z biblioteki. Czy to normalne? Czy istnieje sposób obejścia tego?projekty Android Biblioteka i konieczności ręcznego odświeżania

+0

Myślę, że to normalne, przynajmniej przy użyciu Eclipse. Dzieje się tak dlatego, że przestrzeń robocza Eclipse ma pamięć podręczną zasobów, z których korzysta w projekcie, dlatego wymaga odświeżenia, aby "wykryć" zewnętrzne zmiany. – Cristian

Odpowiedz

0

To prawda. Jeśli twoja lib tworzy słoik, który dodałeś do projektu Android, musisz odświeżyć (możesz również kliknąć prawym przyciskiem myszy i odświeżyć zewnętrzne odniesienie do słoika, aby zaoszczędzić czas).

0

miałem ten sam problem kilka tygodni temu. Nie znalazłem rozwiązania, które chciałem, czyli zmodyfikowałem źródła bezpośrednio w projekcie bibliotecznym, a zależne projekty automatycznie odświeżyły, ale znalazłem coś lepszego niż chaos nieustannego odświeżania i czyszczenia.

Najlepszym sposobem, że udało mi się znaleźć to, aby korzystać z folderu biblioteki połączoną z projektu zależny jest pracował, ten sposób projekt widzi zmiany żyć. Podczas przechodzenia do innego projektu zależnego nadal musisz odświeżyć pliki, które zostały zmienione w innym projekcie (zwykle tylko w folderze src). Może zajść potrzeba odświeżenia projektu biblioteki, jeśli chcesz wprowadzić bezpośrednie zmiany. To może nie wydawać się pomocne, ale jeśli spędzasz duże porcje czasu w jednym projekcie zależnym (jak to było dotychczas w moim przypadku), to naprawdę pomaga.

+1

Twoja metoda jest starą metodą używaną do udostępniania kodu między projektami. Problem polega na tym, że tracisz możliwość współdzielenia zasobów. Cały punkt korzystania z bibliotek w pierwszej kolejności polega na umożliwieniu współdzielenia zasobów (a tym samym dystrybucji bibliotek .jar w pakiecie z zasobami). – Vaiden

3

znalazłem obejście tego problemu. Podstawową ideą jest użycie niestandardowego narzędzia do budowania mrówek, ponieważ ma on możliwość odświeżenia dowolnego konkretnego zasobu lub całego obszaru roboczego na czystej, ręcznej kompilacji lub automatycznej kompilacji.

Więc tutaj są kroki:

1) Utwórz prosty plik Ant z jednej pustej tarczy skrótowej:

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

2) imię to "lib-refresher.xml" i umieścić go w folderze gdzie znajduje się plik .project aplikacji.

3) Teraz przejdź do zaćmienia, znajdź projekt, który korzysta z biblioteki Android (nie sam projekt biblioteki).

4) W tym celu przejdź do projektu: Projekt -> Właściwości -> Builder

5) Utwórz nowy wypełniacz, wybierz Ant zadanie wybrać określony "lib-refresher.xml" wybierz folder, podstawowy build.

6) ważne - zakładka Refresh z ant zadania konstruktora wybierz „zasobów specyficzny” i wybierz Ci zależna biblioteka projektu.

7) ważne - Na kartach Cel wybierz "odśwież" cel dla wariantów budowy: Clean, Ręczna budować, Auto Kompilacja.

8) ważne - Zapisz zmiany, przenieść swój nowy zwyczaj budowniczy ant na szczycie stosu budowniczych.

Teraz cały projekt zostanie odświeżony tuż przed rozpoczęciem budowy i spożywania posiłków. Obejmuje to wszystkie zmiany wprowadzone do projektu bibliotecznego w projekcie aplikacji. Właśnie tego potrzebowaliśmy.

(Można tego dokonać na odwrót: projekt biblioteki może odświeżyć cały obszar roboczy przy każdym uruchomieniu autobuildu, co może być nieco przesadzone, ale może rozwiązać niektóre trudniejsze przypadki).

+0

Działa. Powinny zostać zaakceptowane – znat

1

Mam projekt stoiska w obszarze roboczym (biblioteka Android i Android APP) i kiedy dokonano żadnych zmian w bibliotece mam musi odświeżyć projekt z aplikacji, ale to naprawić mój problem:

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

i tam dodałem moją bibliotekę androidów.

Powiązane problemy