W eclipse, nie można odwołać się do projektu biblioteki Androida w innym projekcie Androida

Kiedy pisałem to pytanie, udało mi się je rozwiązać, więc powtórz je tutaj dla dobra innych. Oto początkowy problem:

Stworzyłem bardzo prosty projekt biblioteki, do którego chcę się odwołać w innym projekcie. Zrobiłem to wcześniej bez żadnych problemów, więc nie jestem pewien, dlaczego tym razem nie działa. Mam:

  1. Oznaczył projekt biblioteki za pomocą właściwości projektu. Plik default.properties ma taki zestaw : android.library=true

  2. W moim innym projekcie dodano odniesienie do projektu mojej biblioteki poprzez właściwości projektu. W pliku default.properties dodano referencję zgodnie z oczekiwaniami ie android.library.reference.1=K:/android_test_ws/applicationRegistrar

  3. Zielony znacznik w stosunku do odnośnego projektu biblioteki zaczyna się na zielono, a następnie zmienia się na Czerwony Krzyż.

To oznacza, że musi być coś nie tak / brakuje w projekcie biblioteki, ale nie wiem co. Mój projekt biblioteczny z tej okazji jest znacznie prostszy niż poprzedni, który stworzyłem.

Author: Laurent.B, 2011-03-02

18 answers

OK oto rozwiązanie, które znalazłem, gdy szukałem domyślnego.properies pliku projektu odniesienia (Nie biblioteki) w moim systemie plików. Chociaż projekt referencji był w tym samym obszarze roboczym eclipse co projekt biblioteki, rzeczywiste pliki były gdzieś indziej w systemie plików, tj. nie były w tym samym folderze nadrzędnym projektu biblioteki. Jak tylko umieściłem projekt odniesienia w tym samym fizycznym folderze, co projekt biblioteki, wszystko poszło dobrze.

I zgaduję, że to musi być coś wspólnego z Androidem używającym mrówki pod pokrywami.

Edit: Nazwa projektu musi pasować do nazwy folderu w systemie plików. To, co widzisz w Properties projektu->Android->Library Reference, to względna ścieżka systemu plików.

 159
Author: malcooke,
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-04-01 09:22:04

Upewnij się, że oba projekty są obecne w tej samej przestrzeni roboczej. Aby to zrobić, podczas importowania projektów upewnij się, że pole wyboru" Kopiuj projekt do przestrzeni roboczej " jest zaznaczone.

 11
Author: Karthik Dheeraj,
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
2013-07-25 11:09:56

Ten sam problem wystąpi, jeśli projekt biblioteki znajduje się na innej partycji niż bieżąca przestrzeń robocza. Mam ten sam problem. Moje źródło Gita jest w C: i po prostu przenoszę Mój obszar roboczy do D: i wszystko zaczyna się zapadać.

 10
Author: user791129,
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-09 09:35:43

Najprostszym sposobem na poprawienie ścieżek biblioteki jest użycie GUI z Eclipse, aby dodać bibliotekę, jak pokazano na poniższym zrzucie ekranu i pozwolić Eclipse zająć się umieszczaniem prawidłowych ścieżek względnych w projekcie.właściwości. Jest to wspólna Konfiguracja, aby projekty biblioteki były hostowane w katalogach znacznie różniących się od głównych projektów, które używają biblioteki. Ta metoda będzie działać, jeśli "libary project" I Projekt z niego korzystający znajdują się w tym samym "workspace" eclipse ("nie muszą" być w ten sam folder nadrzędny): Tutaj wpisz opis obrazka

 4
Author: Nilesh Pawar,
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-02-22 10:58:30

Upewnij się, że projekt biblioteki jest oznaczony jako "Is Library" - kliknij prawym przyciskiem myszy na projekcie biblioteki-properties-Android-zaznacz pole wyboru "is Library" - w projekcie.właściwości projektu biblioteki powinieneś mieć nowy wpis: "android.library = true, Teraz dodaj go do projektu, który chcesz, jak opisano w poście poniżej.(post ze zintegrowanym obrazem-od Nilesh Pawar).

 3
Author: Alexandru Circus,
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-03-30 13:00:31

Ten błąd jest tutaj wielokrotnie wspominany 27199, 35786, 36460 & 38052

Może głosując na nich, to kiedyś to naprawimy...

 3
Author: Laurent.B,
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
2013-09-23 09:46:25

Jeszcze jedna uwaga na ten sam temat.

Dla mnie dwa projekty, gdzie w tym samym folderze nadrzędnym, a oba były lokalne wewnątrz obszaru roboczego. Nawet wtedy problem nadal się rozwijał.

I edytował " projekt.właściwości "pliku i umieścić ścieżkę bezwzględną (z ukośnikami do przodu' / ' dla seperatora) projektu biblioteki. Uratowałem i zamknąłem. Następnie przeszedł do okna Właściwości projektu, usunął bibliotekę (która nadal pokazywała ikonę krzyża, ale ze ścieżką abs) i dodał jak zwykle. O dziwo problem został rozwiązany, a projekt kompiluje się i uruchamia.

To jest naprawdę dziwne i musi być błąd z ADT. Używam ADT w wersji 20.0.2

 2
Author: CuriousChettai,
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-08-14 08:10:55

Gdy programista odwołuje się do facebook lub innego projektu biblioteki, to najpierw wyczyść projekt z eclipse- > project- > clean project. które chcą pozwolić na błąd Czerwonego Krzyża w referencji ekranu.

 2
Author: jayesh jethava,
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-08-24 12:49:04

Dla mnie po prostu restartuję eclipse i dodana biblioteka działa dobrze.

Chodzi mi o to, że pierwszy raz pokazuje czerwone znaki po dodaniu projektu biblioteki. Chociaż główny projekt eclipse i projekt biblioteki znajdują się w tym samym folderze workspace I żadne pliki zasobów nie znajdują się poza folderem projektu.

Więc możesz spróbować ponownie uruchomić eclipse. Szczęśliwego kodowania....

 2
Author: Md Sufi Khan,
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
2014-03-10 08:45:52

Obejście dla mnie było

  1. Utwórz nowy obszar roboczy
  2. Import projektu biblioteki w tym obszarze roboczym
  3. Importuj żądany projekt w tym obszarze roboczym
  4. mając zarówno projekt, jak i bibliotekę projektują tę samą docelową wersję systemu operacyjnego Android
  5. Reference library project in my project

Rozwiązałem mój problem

 1
Author: QAMAR,
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
2013-06-18 16:17:52

Miałem ten sam problem, gdy próbowałem zmienić mój obszar roboczy, więc to moje rozwiązanie:

  1. Importuj i kopiuj wszystkie dane projektu, w tym projekt biblioteki do obszaru roboczego
  2. Usuń stare odniesienie do projektu, klikając prawym przyciskiem myszy projekt-- > właściwości-- > Android-->biblioteka, i wybierz uszkodzoną bibliotekę (tak, że ja ją nazywam) i wybierz Usuń
  3. najpierw wyczyść projekt (aby odświeżyć właściwości projektu ur)
  4. Przejdź do właściwości projektu biblioteki-- > Android-- > biblioteka i sprawdź Biblioteka jest, jeśli nie kliknie przycisku Zastosuj, a następnie OK
  5. jeśli projekt biblioteki jest już zaznaczony, najpierw odznacz go, a następnie wyczyść projekt biblioteki, a następnie wykonaj krok 4 Ponownie
  6. Przejdź do projektu, w którym chcesz mieć bibliotekę, a następnie kliknij prawym przyciskiem myszy projekt-- > właściwości-- > Android-- > Biblioteka, Dodaj następnie wybierz projekt biblioteki (powinien tam być) i kliknij Zastosuj, a następnie OK
  7. jeśli nadal nie pojawia się Wyczyść projekt jeszcze raz i to powinno zrobić
 1
Author: ibrahim saputra,
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
2014-10-08 22:28:14

Po prostu uruchom ponownie zaćmienie. To rozwiąż mój problem

 1
Author: Manisha Patel,
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
2015-06-25 12:59:23

Kiedy spojrzysz na ścieżkę odniesienia przed i po, pochodzi ona z tj. "C:/workspace/mylib" i idzie do "../../ mylib " po skopiowaniu we właściwe miejsce, dość ciekawe.

 0
Author: Sebastian,
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
2011-11-06 08:29:16

FYI,

Zadziałało dla mnie usunięcie projektów 'biblioteki' (rzeczywistych projektów) z mojego obszaru roboczego (bez usuwania plików), a następnie ponowne zaimportowanie ich za pomocą Kreatora (import istniejącego projektu Androida z kodu źródłowego).

 0
Author: JRun,
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
2013-05-10 14:57:17

Dzięki za zamieszczenie pytania. Miałem dokładnie ten sam problem podczas integracji Facebook z moją aplikacją Android. Naprawiłem ten problem, przenosząc mój projekt deweloperski na ten sam dysk Windows, na którym znajdował się projekt biblioteki. W jakiś sposób Eclipse nie jest w stanie poprawnie odczytać lokalizacji projektu biblioteki z domyślnej.plik properties , jeśli znajduje się na innym dysku.

 0
Author: Girish K Gupta,
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
2013-07-11 01:34:56

Podobnie jak w poście Sufi Khan również rozwiązałem ten problem z restartem. Mój przypadek różnił się tym, że kiedy po raz pierwszy uzyskałem dostęp do Właściwości - > Android i dodałem bibliotekę, dostałem piękny zielony znacznik wyboru. Kiedy zamknąłem okno Eclipse nadal pokazywał błędy typu class-not-found. Po ponownym sprawdzeniu właściwości zobaczyłem czerwony X. Ale rozwiązanie Pana Kahna (Usuń zły lib, uruchom ponownie Eclipse, dodaj lib ponownie) działało dobrze.

Używam wersji 0702 pakietu ADT (zaczyna się od "Gromada", rymuje się z "kaczka").

 0
Author: William T. Mallard,
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
2014-07-08 18:53:42

Zastosowałem się do zaakceptowanej odpowiedzi, ale musiałem również upewnić się, że mój " projekt.właściwości " plik był czytelny.

Jeśli plik jest tylko do odczytu (zaznaczony w kontrolce źródłowej) eclipse nie będzie go edytować. Dodanie referencji do biblioteki powiedzie się, ale zmiana nie zostanie utrzymana po naciśnięciu OK.

Jeśli zamknięcie okna preferencji i ponowne otwarcie w usunie bibliotekę, którą właśnie dodałeś, może to być Twoje rozwiązanie.

 0
Author: repkap11,
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
2014-07-21 17:08:47

Jeśli projekt biblioteki nadal się nie wyświetla, spróbuj dodać flagę biblioteki we właściwościach projektu biblioteki

Dodaj android.library = true

Projekt.właściwości

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-17
android.library=true
 0
Author: HimalayanCoder,
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
2014-10-07 12:59:06