Eclipse Android project, jak odwołać się do biblioteki w przestrzeni roboczej?

Wykonałem kilka kroków, które znalazłem tutaj (nie mogę znaleźć URL teraz, przepraszam), aby przekonwertować mój projekt Android w Eclipse do układu, gdzie 99.9% mojego kodu jest w projekcie biblioteki, a następnie mam 2 inne projekty powłoki pod tym samym obszarze roboczym, które są w większości tylko AndroidManifest.pliki xml i kilka plików zasobów. Zostało to zrobione, więc mogę obsługiwać 2 buduje tego samego projektu, tylko kilka drobnych zmian tekstu / ikony między 2. Nazwa aplikacji jest również inna, więc mogę publikować zarówno na Android Market w tym samym czasie.

Odkąd to zrobiłem, około co 10 razy kompiluję, może raz dziennie lub dwa, dostaję "dalvik error 1 "i coś o" Access już istnieje " (Access to nazwa pierwszej jednostki Javy w moim projekcie bibliotecznym).

Aby obejść problem, przechodzę do ścieżki budowania Javy dla mojego projektu stub, który próbuję zbudować, i usuwam plik JAR z mojej biblioteki głównej z zakładki biblioteki. Wtedy mogę budować bez błąd.

Potem jakiś czas później (może 1 lub 2 dni) pojawi się błąd o brakujących klasach podczas kompilacji mojego projektu stub (Nie mojej biblioteki). Więc wrócę do Java Build path i umieścić odniesienie do pliku JAR z powrotem w, i wszystko jest dobre ponownie przez 1 lub 2 dni, a następnie jestem z powrotem do tego samego błędu co wcześniej.

Czy jest to tylko znany problem i coś, co muszę zrobić, Czy mogę rozwiązać poprzez restrukturyzację moich projektów / przestrzeni roboczych? Aktualnie mam:

Lib Project-ma tylko 2 libs on build path: Android 2.1 i com.android.ide.zaćmienie.adt.Biblioteki

Pierwszy projekt stub, który używa powyższej lib-ma te same 2 libs jak powyższy projekt, plus czasami używam "Add JAR", aby dołączyć JAR z powyższego katalogu bin\ projektu.

2nd Stub project-te same libs co first Stub project

Czy powinienem odwołać się do JAR z mojego "projektu lib" używając jednej z innych zakładek w opcjach ścieżki budowania? Może zamiast tego zakładka "projekt" lub zakładka" źródło"? Nie wiem. obecnie mają go pod jednym z tych innych obszarów.

Kiedy wchodzę w dziwny stan, Robienie "czystego projektu" również nie pomaga, próbowałem tego kilka razy i otwieram / zamykam IDE między czyszczeniem, bez rozwiązania.

W tym momencie jesteśmy w końcowych etapach testów, więc moje normalne codzienne zadanie to:

  1. Wykonanie drobnych aktualizacji (poprawki błędów) w projekcie LIB

  2. Użyj Kreatora publikowania, aby eksportować oba projekty i aktualizować Android Market i inne miejsca przechowujemy pliki APK

Więc chciałbym, aby te kroki pozostały proste, bez konieczności otwierania / zamykania wielu obszarów roboczych lub przechodzenia przez wiele kroków budowania, jeśli to możliwe.

Author: eselk, 2012-02-14

1 answers

The classical Eclipse / Java way

Dodaj bibliotekę (workspace)

  • kliknij prawym przyciskiem myszy projekt, który chcesz wstawić.
  • Kliknij Properties.
  • Wybierz Java Build Path.
  • wybierz kartę Libraries.

Teraz to zależy jak skompilujesz swoją bibliotekę. Więc albo zrób Add JARs... albo Add Class Folder. Wybierz wariant external, aby użyć zewnętrznego źródła. To wszystko.

Dodaj projekt przestrzeni roboczej

  • kliknij prawym przyciskiem myszy projekt, który chcesz wstawić do środka.
  • Kliknij Properties.
  • Wybierz Java Build Path.
  • wybierz kartę Projects.

Kliknij Add... po prawej stronie i gotowe.

The additional Android way

Konieczne są dwa kroki:

  • zaznacz projekt, którego chcesz użyć jako projektu biblioteki
  • odniesienie do oznaczonego projektu

Zaznacz projekt biblioteki

Kliknij prawym przyciskiem myszy swój projekt i wybierz Properties. Wybierz Android po lewej stronie i zaznacz pole wyboru IsLibrary. Załatwione.

Reference the marked project

Kliknij prawym przyciskiem myszy swój projekt i wybierz Properties. Wybierz Android po lewej stronie i Add... swój zaznaczony projekt. Zostanie dodany do listy i jest gotowy do użycia. Teraz możesz uzyskać dostęp do wszystkich klas i zasobów (np. drawables, strings) z odnośnego, oznaczonego projektu. Niesamowite, co? :)

 52
Author: poitroae,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-20 17:52:24