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:
-
Wykonanie drobnych aktualizacji (poprawki błędów) w projekcie LIB
-
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.
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? :)
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