Komunikat LogCat: Nie znaleziono zasobów usług Google Play. Sprawdź konfigurację projektu, aby upewnić się, że zasoby są uwzględnione


317

Mam aplikację korzystającą z Google Maps Android v2 API. Dodałem google-play-services_libprojekt biblioteki do mojego obszaru roboczego i dodałem odniesienie do niego z mojego projektu aplikacji, postępując zgodnie z instrukcjami na tych stronach:

Wszystko wydaje się działać dobrze: aplikacja wyświetla mapy i nakładki z domyślnymi znacznikami. Jestem więc prawie pewien, że mam poprawnie skonfigurowane usługi Google Play i API Google Maps API.

Widzę jednak ten komunikat w oknie ADT LogCat przy każdym zainicjowaniu widoku mapy (na Nexusie 7 drugiej generacji):

The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

Poziom wiadomości to Błąd, a znacznik to GooglePlayServicesUtil.

Wydaje się to łagodne, ponieważ moja aplikacja działa dobrze. Ale co mogę zrobić lub sprawdzić, aby spróbować rozwiązać problem?


Dalsze informacje: Za każdym razem, gdy komunikat „Nie znaleziono zasobów usług Google Play” pojawia się w LogCat, jest poprzedzony tymi komunikatami, które są Ostrzeżeniami i oznaczone ResourceType:

getEntry failing because entryIndex 906 is beyond type entryCount 3

Failure getting entry for 0x7f0b038a (t=10 e=906) in package 0 (error -2147483647)

FWIW, nie mogę znaleźć stałej 0x7f0b038a w dowolnym miejscu podczas wyszukiwania projektów, w tym plików gen / R.java.

Sprawdziłem zawartość wygenerowanego pliku .apk i zawiera on wszystkie zasoby znajdujące się w google-play-services_lib/reskatalogu.


Kolejna aktualizacja: po dodaniu ActionBarSherlock i zaktualizowaniu targetSdkVersion w moim manifeście z 8 do 17, teraz widzę kolejny błąd w danych wyjściowych LogCat:

Could not find class 'maps.af.k', referenced from method 'maps.ag.an.a'

Więcej informacji na temat tego problemu można znaleźć tutaj: Mapy Google działają dobrze na Androidzie, ale nadal pojawia się błąd „Nie można znaleźć klasy„ maps.i.k ”, do której odwołuje się metoda maps.z.ag.a”

I znów aplikacja wydaje się działać dobrze. Może można bezpiecznie zignorować te „błędy”?


1
To samo dzieje się tutaj, używając Gradle + Android Studio! 08-06 19: 47: 00.376 2141-2141 / com.menor.android.assignment.tempos21 E / GooglePlayServicesUtil: Nie znaleziono zasobów usług Google Play. Sprawdź konfigurację projektu, aby upewnić się, że zasoby są uwzględnione.
cesards

1
Spróbuj wyczyścić wszystkie projekty w obszarze roboczym (poniżej Project > Clean). Zauważyłem, że czasami rozwiązuje to problemy z R.java/resource.
Connor Brinton,

3
To samo dzieje się tutaj, czyste nie pomogło. Myślę, że zaczęło się po aktualizacji rzeczy w menedżerze
SDK

8
To samo tutaj (także Eclipse), najprawdopodobniej wynika to z najnowszej aktualizacji SDK (22.0.5). Dzisiaj Usługi Google Play zostały zaktualizowane do wersji 10, ale nadal pojawia się komunikat o błędzie. Co jeszcze gorsze; mój fragment Map Google przestał działać Nie chce wyświetlać żadnej mapy, tylko niekończące się niebieskie płótno.
Magnus Johansson,

5
Goggle mówi: „Możesz bezpiecznie zignorować tę wiadomość. Twoja aplikacja będzie nadal pobierać i wyświetlać reklamy banerowe”.
sagus_helgy

Odpowiedzi:


50

Jest to błąd w bibliotece usług Google Play, który został zgłoszony tutaj pod numerem 755 .

Niestety nie ma jeszcze żadnego rozwiązania.


21
Ten post pochodzi z 2014 roku. W tej chwili pojawia się ten błąd. Czy ten wpis jest istotny?
Talha,

@sachithkn dość dziwne, miałem problemy z kodem, podczas inspekcji i debugowania dowiedziałem się o tym. Zamiast pokazywać błąd w moim kodzie, który zawiesił się na poziomie API, prawdopodobnie zrobiłem zły kod, dodając try-catch gdzieś, który wymusił uruchomienie kodu, ostatecznie zawieszając się przy wywołaniu API (lub w API). Więc naprawiłem mój kod i błąd zniknął. Tak mi się przynajmniej zdarzyło.
Talha,

88

Najczęściej zadawane pytania dotyczące zestawu SDK do reklam mobilnych Google wskazują, że:

Wciąż pojawia się błąd „Nie znaleziono zasobów usług Google Play. Sprawdź konfigurację projektu, aby upewnić się, że zasoby są uwzględnione. ”

Możesz bezpiecznie zignorować tę wiadomość. Twoja aplikacja będzie nadal pobierać i wyświetlać reklamy banerowe.

Więc jeśli poprawnie podałeś google-play-services_lib i otrzymujesz reklamy, nie masz się czym martwić (chyba ...)


1
może możesz to zignorować, ale ciągle dostaję kod, który nie istnieje, za każdym razem, gdy wybieram debugowanie aplikacji.
programista Androida

Co jeśli nie używam reklam? Czy usługi Google Play nadal będą próbować robić to, co generuje komunikat?
Kristopher Johnson

Widzę to również w innej aplikacji, w której rejestruję się po otrzymaniu powiadomień push GCM i wszystko wydaje się działać dobrze.
grebulon

kiedy uruchamiam aplikację w emulatorze Androida, wyświetlane są reklamy, ale jeśli uruchomię tę samą aplikację na fizycznym urządzeniu z
Androidem,

To jest moje doświadczenie i opinia Również
Noor Hossain

36

Właśnie wpadłem na ten problem dziś rano i wydawało mi się bardzo dziwne, ponieważ moja aplikacja działała dobrze do dziś. Otrzymywałem dokładnie ten sam komunikat „Nie znaleziono zasobów usług Google Play ...”.

Próbowałem otworzyć zwykłą aplikację Google Maps, aby sprawdzić, czy mogę uzyskać swoją lokalizację, ale nie można jej znaleźć. Nawet po odczekaniu 5 minut, co jest wystarczającym czasem, aby normalnie uzyskać lokalizację nawet od usługodawcy za pośrednictwem wieży komórkowej. Więc sprawdziłem Usługi lokalizacji.

W każdym razie problem okazał się taki, że na moim S3 w obszarze Usługi lokalizacji -> Usługi lokalizacji Google . Nie zostało to sprawdzone. Pozostałe dwie opcje lokalizacji zostały sprawdzone ( usługi lokalizacyjne VZW i samodzielne usługi GPS ), ale ostatnia, usługi lokalizacyjne Google nie. Po włączeniu zwykłe Mapy Google mogą znaleźć moją lokalizację, a moja aplikacja może znaleźć moją lokalizację, a problem zniknął.

Komunikat o błędzie pojawia się z powodu:

mMap.setMyLocationEnabled(true);

gdy Usługi lokalizacyjne Google nie są włączone.

Po przeprowadzeniu kilku dalszych testów wygląda na to, że jeśli bieżąca lokalizacja jest pusta (nie można ustalić ze wszystkich źródeł), pojawi się ten błąd podczas próby włączenia setMyLocationEnabled.


To jest sedno problemu z tego, co mogę powiedzieć. Jeśli usuniesz wywołanie setMyLocationEnabled (), błąd nie będzie już wyświetlany. Chociaż jest wymieniony jako błąd, wydaje się być nieszkodliwy, ponieważ aplikacja nadal działa dobrze, a funkcja wyświetlania mojej lokalizacji w aplikacji również działa dobrze. Nie jestem pewien, dlaczego pojawia się jako błąd.
Guardius

19
setMyLocationEnabled nie ma z tym nic wspólnego, ponieważ na wszystkich moich urządzeniach usługi lokalizacji są włączone w ustawieniach. Podejrzewam, że najnowszy plik google-play-services.jar jest uszkodzony.
IgorGanapolsky

Mój problem miał prawie podobną naprawę, której potrzebowałem, aby włączyć moją lokalizację w Androidzie 4.4, faktycznie widzisz aplikację, która żąda lokalizacji, a moja aplikacja była jedną z nich. Myślę, że ma to związek z setOnMyLocationChangeListener, a nie z setMyLocationEnabled, co daje ten błąd. Aby poprosić o lokalizację i sprawdzić, czy usługi lokalizacyjne są włączone, konieczne jest sprawdzenie pewnego rodzaju. Powinien pomóc
Jayshil Dave,

32

Odkompilowałem bibliotekę wersji 14 usług Google Play. Myślę, że w tym jest błąd com.google.android.gms.common.GooglePlayServicesUtil.class. Powyższy ciąg występuje tylko w jednym miejscu:

public static int isGooglePlayServicesAvailable(Context context) {
    PackageManager localPackageManager = context.getPackageManager();
    try {
        Resources localResources = context.getResources();
        localResources.getString(R.string.common_google_play_services_unknown_issue);
    } catch (Throwable localThrowable1) {
        Log.e("GooglePlayServicesUtil", "The Google Play services resources were not found. "
                + "Check your project configuration to ensure that the resources are included.");
    }
....

Nie ma R.classw com.google.android.gms.commonpakiecie.

Jest import com.google.android.gms.R.string;, ale nie ma zastosowania string.something, więc myślę, że to jest błąd - powinien być import com.google.android.gms.R;.

Niemniej jednak isGooglePlayServicesAvailablemetoda działa zgodnie z przeznaczeniem (oprócz rejestrowania tego ostrzeżenia), ale istnieją inne metody w tej klasie, które wykorzystują nieimportowane R.class, więc mogą wystąpić inne błędy. Chociaż banery w mojej aplikacji działają dobrze ...


20

Musisz dodać google-play-services-libjako projekt biblioteki. Zaktualizowali zestaw SDK . Wokół jest kilka samouczków. W przypadku Eclipse jest to łatwe:

Right click project -> properties -> Android

Wpisz opis zdjęcia tutaj

Bardziej szczegółowe instrukcje:

Importowanie projektu biblioteki

Jak uruchomić GoogleMaps na emulatorze


15
Jak stwierdzono w pytaniu, dodałem projekt biblioteki google-play-services_lib i wszystko działa dobrze.
Kristopher Johnson

ok, nie powiedziałeś wyraźnie, że używasz google-play-services-lib jako PROJEKTU, więc próbowałem to podkreślić. ponownie przemyślę problem.
bofredo,

4
FWIW, spojrzałem na wygenerowany plik .apk i zawiera on wszystkie zasoby z projektu google-play-services_lib, więc jestem prawie pewien, że projekt biblioteki został poprawnie dodany i do którego się odwołuje.
Kristopher Johnson

2
Czy wiesz, jak wykonać równoważną operację w Android Studio? Nie chcę importować go z maven
Raphael Royer-Rivard

12

Też miałem ten problem. Sposób, w jaki to rozwiązałem, był następujący:

  1. Usuń projekt biblioteki google-play-services_lib.
  2. Usuń (teraz niepoprawny) odnośnik google-play-services_lib w [Twój projekt]> Właściwości> Android.
  3. Zaimportowano projekt biblioteki google-play-services_lib z android-sdk-x/extras/google_play_services/libproject. Podczas importowania projektu pojawia się opcja „Kopiuj projekt do obszaru roboczego”. ODKRYJ TO.
  4. Dodaj (teraz ważny) odnośnik google-play-services_lib do swojego projektu za pomocą [Twój projekt]> Właściwości> Android.

To załatwiło sprawę. Mam nadzieję, że ci to pomoże!


7
Tylko do Twojej wiadomości, nie powinieneś importować usług Google Play bezpośrednio z SDK. Jeśli to zrobisz, pozostaw pole „Kopiuj projekt do obszaru roboczego”. Zaznaczone lub skopiuj katalog do obszaru roboczego, a jeszcze lepiej do systemu kontroli wersji. Natknąłem się na ten problem, gdy niektórzy deweloperzy używali starszej wersji, a niektórzy używali najnowszej wersji, a kod projektu zawodził z najnowszą wersją, ponieważ nie zawierał nowo wymaganych metadanych map google w Manifeście.
Matt K

Czy wiesz, jak wykonać równoważną operację w Android Studio? Nie chcę importować go z maven
Raphael Royer-Rivard

4

Ten problem napotyka mnie, gdy korzystam z AdMob JUST, ponieważ zapomniałem wpisać mój identyfikator jednostki reklamowej @string.


Gdzie powiedziałeś, że zapomniałeś to zrobić? Tworzę mój pogląd programowo i przekazuję taki identyfikator programowo.
Fran Marzoa,

3

Miałem ten sam problem. W konsoli API Google należy sprawdzić, czy dla tej aplikacji jest wygenerowany tylko jeden klucz. Miałem odcinek, w którym przeprowadziłem migrację kodu z jednego komputera na drugi itd. (Zrobiło się bałagan) i miałem wiele kluczy do mojego jednego projektu. Wszystkie starsze klucze są wymienione jako nieaktywne na stronie konsoli API, ale z jakiegoś powodu spowodowały konflikt. Po ich całkowitym usunięciu uruchomiłem go ponownie i zadziałało.


3

Jeśli chodzi o mnie, rozwiązałem ten problem w inny sposób - jak mówi developer.android.com, po dodaniu google-play-services_lib powinieneś dodać <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> w swoim manifeście, ale w nowym SDK zawsze pojawi się błąd:

Błąd: nie znaleziono zasobu pasującego do podanej nazwy (o wartości „wartość” z wartością „@ liczba całkowita / google_play_services_version”).

Aby rozwiązać ten błąd, wiele osób zaleca użycie surowej wartości 4030500 zamiast @integer/google_play_services_version, ale jest to poprawne TYLKO w przypadku usług Google w wersji 13.

Jeśli używasz dowolnej starszej wersji lub wersji dla Froyo (jak ja), powinieneś w niej dodać inną wartość. Aby dowiedzieć się, jaką wartość powinieneś umieścić, po prostu otwórz manifest usług Google Play i skopiuj i wklej wartość version_code. W przypadku usług Froyo jest to 3265130 . Po dodaniu tego przestałem otrzymywać ten błąd i w końcu zacząłem otrzymywać współrzędne w mojej aplikacji.


4030500 dał mi błąd. Jednak poprawna wartość do użycia została podana w logcat.
Maverick

@Maverick, jaka jest Twoja wersja google_play_services? Sprawdź to w Android
SDK

3

Dla mnie jedynym działającym rozwiązaniem było dodanie biblioteki android-support-v7-appcompat . Wydaje się, że ta biblioteka jest również potrzebna, aby pozbyć się tej wiadomości. Od tego czasu moje aplikacje działają dobrze!

Mam nadzieję, że to pomoże!


Nie zadziałało to dla mnie, dla którego skompilowałeś swój projekt?
JPM

2

Miałem tutaj ten sam problem. Jak powiedział Magnus powyżej, dla mnie działo się to z powodu aktualizacji SDK do wersji 22.0.5.

Po wykonaniu pełnej aktualizacji w moim zestawie SDK systemu Android (w tym usługach Google Play) i wtyczkach systemu Android w środowisku Eclipse mogłem korzystać z biblioteki usług odtwarzania w mojej aplikacji.


2

Dla użytkowników IntelliJ IDEA

Po kilku dniach zmagań jedynym sposobem, aby działał w IntelliJ IDEA 13, było zaimportowanie biblioteki. Oto wszystkie kroki:

  1. Zaktualizuj zestaw SDK systemu Android, aby zainstalować najnowszą usługę Play.
  2. Idź do android-sdk-root/extras/google/google_play_services/libprojectkatalogu.
  3. Skopiuj google-play-services_libi wklej go obok swojego projektu IntelliJ IDEA (niektórzy zalecają bezpośrednie użycie tego katalogu, ale radzę zachować ten kod w czystości!).
  4. Otwórz właściwości projektu IntelliJ IDEA i dodaj nowy moduł google-play-services_lib.
  5. Sprawdź, czy jest oznaczony jako biblioteka.
  6. Dodaj google-play-services_libprojekt biblioteki jako zależność do projektu głównego.
  7. Dodaj google-play-servicesbibliotekę jako bibliotekę zależności.

Pod linkiem, który podałem poniżej, możesz zobaczyć obraz tego, jak to wygląda w mojej IntelliJ IDEA 13. Nie działałoby to bez dodania tylko jednego z tych dwóch.

PS. Zadałem pytanie: Dlaczego IntelliJ IDEA 13 wymaga zarówno projektu lib, jak i samej biblioteki lib (usługa Google Play) jako zależności? , dlaczego jest to konieczne w IntelliJ IDEA 13 i dlaczego nie możemy importować ani biblioteki, ani tylko projektu.


Czy możesz podać dokładne manipulacje, które robisz, aby zaimportować projekt google-play-services_lib jako zależność modułu (używam Android Studio 0.3.6)
Raphael Royer-Rivard

@ RaphaelRoyer-Rivard Gotowe! Pamiętaj, że te kroki są dla IDEA 13, a nie dla Android Studio, więc niektóre kroki mogą się różnić, powinieneś być taki sam.
sandalone

Właściwie to operacja 4 i 5 powoduje mi problemy. Otwieram Strukturę Projektu za pomocą F4, następnie przechodzę do Modułów, klikam + i pojawia się wyskakujące okienko o nazwie Nowy Moduł. Czy odsyłam do folderu google-play-services_lib stąd (w polu Treść)?
Raphael Royer-Rivard

@ RaphaelRoyer-Rivard Wystarczy przejść do folderu, a nie do biblioteki JAR. I dodaj cały projekt jako moduł. Czy o to pytałeś?
sandalone

Cóż, w moim przypadku nie jest to proste. Muszę wybrać typ z listy moduł ( Java, Maven, Gradle, JavaFX Application, Command Line App, Groovy, Griffon, Gradle: Android Module, Gradle: Android Project, Gradle: Java Library). A następnie wybierz folder w polu Content root. Czy można Javawybrać odpowiedni typ modułu?
Raphael Royer-Rivard

1

Też miałem ten sam problem. Na początku działało to dobrze, ale jakiś czas później całkowicie odinstalowałem aplikację z urządzenia (działałem na telefonie komórkowym) i uruchomiłem ją ponownie, co pokazuje ten sam błąd.

Włączyłem całą bibliotekę i zasoby w trakcie jej działania, ale nadal otrzymywałem ten błąd, więc usunąłem wszystkie odniesienia i bibliotekę z mojej kompilacji projektu, zaktualizowałem usługę Google Play do wersji 10, całkowicie odinstalowałem aplikację z urządzenia, a następnie ponownie dodałem wszystkie zasoby i biblioteki lib, uruchomiłem je i zaczęło działać ponownie.

Jedną rzeczą do odnotowania tutaj jest to, że podczas pracy wciąż widzę ten komunikat o błędzie w moim LogCat , ale na moim urządzeniu działa teraz dobrze.


1

Też miałem ten sam problem. Próbowałem też szukać rozwiązań, ale gdy nie znalazłem żadnego z nich, próbowałem ponownie uruchomić telefon (urządzenie z Androidem) i to rozwiązało problem.

Spróbuj! Uruchom ponownie urządzenie mobilne i Eclipse, aby być po bezpiecznej stronie i sprawdź, czy działa.



0

LE: Właśnie sobie przypomniałem, że chodziło o korzystanie z Map Google, więc moja odpowiedź tak naprawdę nie odpowiada na pierwsze pytanie, ale mam nadzieję, że niektórzy ludzie zaoszczędzą godzin / dni, waląc głową w biurka, jeśli mają ten sam problem z usługami Play Game .

Ja też miałem ten niezwykle tajemniczy błąd. Nie miało to dla mnie nic wspólnego z usługami lokalizacyjnymi, ale z niepoprawnym odczytaniem dokumentacji , a dokładniej krok 3, w którym mówi się o dodaniu następujących elementów do AndroidManifest.xml:

<meta-data android:name="com.google.android.gms.games.APP_ID"
    android:value="@string/app_id" />

Oczywiście powinieneś mieć również następujące elementy AndroidManifest.xml

<meta-data android:name="com.google.android.gms.version"
   android:value="@integer/google_play_services_version"/>

Korzystałem z tych, BaseGameActivityktóre sugerują używać, gdy chcesz wdrożyć usługi gier, więc byłem trochę zaskoczony, że to nie zadziałało od razu. Stworzyłem dedykowany moduł dla kopii google-play-services_lib, miałem jego najnowszą wersję (w 4323000momencie pisania) i ustawiłem to jako zależność modułu od mojego głównego modułu (używając tutaj Android Studio). Ale ta mała linia powyżej naprawiła wszystko.


0

Miałem ten sam problem. Jak powiedział Kristopher Johnson, wspomniałem o google-play-services_lib, ale to nie działało. Dodałem google_play_services_lib.jar (spójrz na swój SDK / folder google) w obszarze właściwości projektu / ścieżki kompilacji Java / bibliotek / zależności Androida i błąd zniknął.


0

Miałem dokładnie ten sam problem podczas pracy z kilkoma programistami. Jeśli uruchomię projekt z mojego ADT , działa dobrze, ale z ich nie jest ..

Odpowiedzią było umieszczenie klucza SHA-1 z nazwą pakietu w konsoli Google API, a także mojej. Jesteśmy trzema programistami, więc musieliśmy wprowadzić trzy klucze SHA-1.

Mam nadzieję, że da ci to trochę inspiracji ...


0

W moim przypadku oznaczało to, że w mojej implementacji jest jakiś błąd i mówi, że nie może znaleźć zasobu, aby komunikat o błędzie był poprawnie wyświetlany w LogCat . Kiedy naprawiłem ten błąd w mojej implementacji, problem z LogCat również zniknął. Tak więc, chyba że brakuje jakiegoś naprawdę niezbędnego zasobu, nie powinieneś koncentrować się na naprawie brakujących zasobów, a raczej na poprawieniu implementacji.

Błąd BTW polegał na tym, że wyświetlałem reklamy w trybie debugowania bez przechodzenia do trybu testowania reklam.


0

Uważam, że jest to błąd występujący w obecnej bibliotece usług Google Play, wersja 15, ponieważ przyczyną tego problemu wydaje się być brak odczytu pliku zasobów:

W / ResourceType (25122): Żądanie zasobu 0x7f0c000d nie powiodło się, ponieważ jest złożone
E / GooglePlayServicesUtil (25122): Nie znaleziono zasobów usług Google Play. Sprawdź konfigurację projektu, aby upewnić się, że zasoby są uwzględnione.

Wygląda na to, że biblioteka usług Google Play próbuje odczytać plik zasobu i ma ogólny catch-all, który wyświetla ten komunikat o błędzie, gdy zasób nie zostanie załadowany. Odpowiada to temu, co udało się krekerowi zdekompilować z biblioteki i wyjaśniłby komunikaty dziennika.


0

Wiesz, nie sądzę, że to błąd od SDK. „Nie znaleziono zasobów usług Google Play. Sprawdź konfigurację projektu, aby upewnić się, że zasoby są uwzględnione” jest dokładnie poprawne. Plik jar umieszczony w / libs nie zawiera żadnych zasobów, takich jak * xml, * png itp. Logi błędów to oznaczają. I jeśli kiedykolwiek dodane biblioteki wsparcia jak v4 , v7-AppCompat , V7 cardview , V7 recyclerview , v7-palety lub V7 GridLayout krótko, czasem występują dzienniki, które wskazują, że zasoby są. Wszystko to dlatego, że zasoby w projektach nie są importowane. Tak więc importuj projekty pomocnicze jako bibliotekę jak najszybciej. Oczywiście najpierw pobierasz projekty pomocy technicznej SDK Managerw pozycjidodatki


0

Miałem ten sam problem, że utworzyłem własny interfejs API, aby sprawdzić, czy usługa Google Play jest zainstalowana, czy nie, działa dobrze dla mnie. Wystarczy przekazać informacje o pakiecie usługi Google Play, która da ci wartość

poniżej znajduje się kod:

public static boolean isGooglePlayServicesInstalled () { try { ApplicationInfo info = NativeActivity . OBECNY . getPackageManager (). getApplicationInfo ( „com.google.android.gms” , 0 );

LOG.d(LOG_IDENTIFIER, "info : "+ info); return true; } catch(PackageManager.NameNotFoundException e) { e.printStackTrace(); LOG.e(LOG_IDENTIFIER, "NameNotFoundException : "+ e.getMessage()); } return false; }

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.