Udostępnij za pośrednictwem


Rozwiązywanie problemów z błędami instalacji biblioteki

W niektórych przypadkach podczas instalowania bibliotek obsługi systemu Android mogą wystąpić błędy. Ten przewodnik zawiera obejścia niektórych typowych błędów.

Omówienie

Podczas kompilowania projektu aplikacji platformy Xamarin.Android mogą wystąpić błędy kompilacji, gdy program Visual Studio lub Visual Studio dla komputerów Mac spróbuje pobrać i zainstalować biblioteki zależności. Wiele z tych błędów jest spowodowanych problemami z łącznością sieciową, uszkodzeniem plików lub problemami z wersją. W tym przewodniku opisano najczęstsze błędy instalacji biblioteki pomocy technicznej i przedstawiono kroki umożliwiające obejście tych problemów i ponowne utworzenie projektu aplikacji.

Błędy podczas pobierania repozytorium m2

Błędy m2repository mogą wystąpić podczas odwoływania się do pakietu NuGet bibliotek pomocy technicznej systemu Android lub usług Google Play. Komunikat o błędzie jest podobny do następującego:

Download failed. Please download https://dl-ssl.google.com/android/repository/android_m2repository_r16.zip and extract it to the C:\Users\mgm\AppData\Local\Xamarin\Android.Support.v4\22.2.1\content directory.

Ten przykład dotyczy android_m2repository_r16, ale może zostać wyświetlony ten sam komunikat o błędzie dla innej wersji, takiej jak android_m2repository_r18 lub android_m2repository_r25.

Automatyczne odzyskiwanie z błędów m2repository

Często ten problem można rozwiązać przez usunięcie problematycznej biblioteki i ponowne kompilowanie zgodnie z następującymi krokami:

  1. Przejdź do katalogu biblioteki pomocy technicznej na komputerze:

    • W systemie Windows biblioteki pomocy technicznej znajdują się w folderze C:\Users\username\AppData\Local\Xamarin.

    • W systemie Mac OS X biblioteki pomocy technicznej znajdują się w lokalizacji /Users/username/.local/share/Xamarin.

  2. Znajdź bibliotekę i folder wersji odpowiadający komunikatowi o błędzie. Na przykład biblioteka i folder wersji powyższego komunikatu o błędzie znajdują się w lokalizacji Android.Support.v4\22.2.1:

    Example folder location for 22.2.1 support library

  3. Usuń zawartość folderu wersji. Pamiętaj, aby usunąć plik .zip , a także zawartość i osadzone podkatalogi w tym folderze. W przykładowym komunikacie o błędzie pokazanym powyżej pliki i podkatalogi wyświetlane na tym zrzucie ekranu (zawartość, osadzona i android_m2repository_r16.zip) mają zostać usunięte:

    Example contents of 22.2.1 support library folder

    Należy pamiętać, że ważne jest usunięcie całej zawartości tego folderu. Mimo że ten folder może początkowo zawierać "brakujące" android_m2repository_r16.zip pliku, ten plik mógł zostać częściowo pobrany lub uszkodzony.

  4. Skompiluj projekt — spowoduje to ponowne pobranie brakującej biblioteki przez proces kompilacji.

W większości przypadków te kroki spowodują rozwiązanie błędu kompilacji i umożliwią kontynuowanie. Jeśli usunięcie tej biblioteki nie rozwiąże błędu kompilacji, należy ręcznie pobrać i zainstalować plik android_m2repository_r_nn_.zip zgodnie z opisem w następnej sekcji.

Ręczne pobieranie repozytorium m2

Jeśli podjęto próbę wykonania powyższych kroków automatycznego odzyskiwania i nadal występują błędy kompilacji, możesz ręcznie pobrać plik android_m2repository_r_nn_.zip (przy użyciu przeglądarki internetowej) i zainstalować go zgodnie z poniższymi krokami. Ta procedura jest również przydatna, jeśli nie masz dostępu do Internetu na komputerze dewelopera, ale możesz pobrać archiwum przy użyciu innego komputera.

  1. Pobierz plik android_m2repository_r_nn_.zip odpowiadający komunikatowi o błędzie — linki znajdują się na poniższej liście (wraz z odpowiednim skrótem MD5 adresu URL każdego linku):

    • android_m2repository_r33.zip – 5FB756A25962361D17BBE99C3B3FCC44

    • android_m2repository_r32.zip — F16A3455987DBAE5783F058F19F7FCDF

    • android_m2repository_r31.zip – 99A8907CE2324316E754A95E4C2D786E

    • android_m2repository_r30.zip – 05AD180B8BDC7C21D6BCB94DDE7F2C8F

    • android_m2repository_r29.zip – 2A3A8A6D6826EF6CC653030E7D695C41

    • android_m2repository_r28.zip – 17BE247580748F1EDB72E9F374AA0223

    • android_m2repository_r27.zip — C9FD4FCD69D7D12B1D9DF076B7BE4E1C

    • android_m2repository_r26.zip – 8157FC1C311BB36420C1D8992AF54A4D

    • android_m2repository_r25.zip – 0B3F1796C97C707339FB13AE8507AF50

    • android_m2repository_r24.zip – 8E3C9EC713781EDFE1EFBC5974136BEA

    • android_m2repository_r23.zip — D5BB66B3640FD9B9C6362C9DB5AB0FE7

    • android_m2repository_r22.zip – 96659D653BDE0FAEDB818170891F2BB0

    • android_m2repository_r21.zip — CD3223F2EFE068A26682B9E9C4B6FBB5

    • android_m2repository_r20.zip — 650E58DF02DB1A832386FA4A2DE46B1A

    • android_m2repository_r19.zip – 263B062D6EFAA8AE39E9460B8A5851A

    • android_m2repository_r18.zip – 25947AD38DCB4865ABEB61522FAFDA0E

    • android_m2repository_r17.zip – 49054774F44AE5F35A6BA9D3C117EFD8

    • android_m2repository_r16.zip – 0595E577D19D31708195A83087881EE6

    Jeśli archiwum m2repository nie jest wyświetlane w tej tabeli, możesz utworzyć adres URL pobierania, poprzedzając https://dl-ssl.google.com/android/repository/ nazwę repozytorium m2 do pobrania. Na przykład użyj polecenia https://dl-ssl.google.com/android/repository/android\_m2repository\_r_nn_.zip , aby pobrać android_m2repository_r_nn_.zip.

  2. Zmień nazwę pliku na odpowiedni skrót MD5 adresu URL pobierania, jak pokazano w powyższej tabeli. Jeśli na przykład pobrano android_m2repository_r25.zip, zmień jego nazwę na 0B3F1796C97C707339FB13AE8507AF50.zip. Jeśli skrót MD5 dla adresu URL pobierania pobranego pliku nie jest wyświetlany w tabeli, możesz użyć generatora MD5 online, aby przekonwertować adres URL na ciąg skrótu MD5.

  3. Skopiuj plik do folderu zips platformy Xamarin:

    • W systemie Windows ten folder znajduje się w folderze C:\Users\username\AppData\Local\Xamarin\zips.

    • W systemie Mac OS X ten folder znajduje się w folderze /Users/username/.local/share/Xamarin/zips.

    Na przykład poniższy zrzut ekranu ilustruje wynik po pobraniu android_m2repository_r16.zip i zmianie nazwy na skrót MD5 adresu URL pobierania w systemie Windows:

    Example of the r16.zip repository being renamed to 0595E577D19D31708195A83087881EE6.zip

Jeśli ta procedura nie rozwiąże błędu kompilacji, musisz ręcznie pobrać plik android_m2repository_r_nn_.zip , rozpakuj go i zainstaluj jego zawartość zgodnie z opisem w następnej sekcji.

Ręczne pobieranie i instalowanie plików m2repository

W pełni ręczny proces odzyskiwania po błędach m2repository wiąże się z pobraniem pliku android_m2repository_r_nn_.zip (przy użyciu przeglądarki internetowej), rozpakowaniem go i skopiowaniem jej zawartości do katalogu biblioteki pomocy technicznej na komputerze. W poniższym przykładzie odzyskamy dane z tego komunikatu o błędzie:

Unzipping failed. Please download https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip and extract it to the C:\Users\mgm\AppData\Local\Xamarin\Android.Support.v4\23.1.1\content directory.

Aby pobrać repozytorium m2 i zainstalować jego zawartość, wykonaj następujące czynności:

  1. Usuń zawartość folderu biblioteki odpowiadającego komunikatowi o błędzie. Na przykład w powyższym komunikacie o błędzie należy usunąć zawartość C:\Users\username\AppData\Local\Xamarin\Android.Support.v4\23.1.1.0. Zgodnie z wcześniejszym opisem należy usunąć całą zawartość tego katalogu:

    Deleting content, embedded, and android_m2repository folders from the 23.1.1.0 folder

  2. Pobierz plik android_m2repository_r_nn_.zip z firmy Google, który odpowiada komunikatowi o błędzie (zobacz tabelę w poprzedniej sekcji, aby uzyskać linki).

  3. Wyodrębnij to .zip archiwum do dowolnej lokalizacji (np. pulpitu). Powinno to spowodować utworzenie katalogu odpowiadającego nazwie archiwum .zip . W tym katalogu powinien znajdować się podkatalog o nazwie m2repository:

    m2repository folder found in extracted zip archive

  4. W katalogu biblioteki w wersji przeczyszczonym w kroku 1 ponownie utwórz zawartość i osadzone podkatalogi. Na przykład poniższy zrzut ekranu przedstawia zawartość i osadzone podkatalogi tworzone w folderze 23.1.1.0 dla android_m2repository_r25.zip:

    Create content and embedded folders in the 23.1.1.0 folder

  5. Skopiuj repozytorium m2 z wyodrębnionego .zip do katalogu zawartości utworzonego w poprzednim kroku:

    Screenshot of m2repository copied to 23.1.1.0/content folder

  6. W wyodrębnionym katalogu .zip przejdź do katalogu m2repository\com\android\support\support-v4 i otwórz folder odpowiadający numerowi wersji utworzonemu powyżej (w tym przykładzie 23.1.1):

    Example listing of files contained in the support-v4/23.1.1 folder

  7. Skopiuj wszystkie pliki w tym folderze do katalogu osadzonego utworzonego w kroku 4:

    Example of files copied to the 23.1.1.0/embedded folder

  8. Sprawdź, czy wszystkie pliki są kopiowane. Katalog osadzony powinien teraz zawierać pliki, takie jak .jar, .aar i .pom.

  9. Rozpakuj zawartość wszystkich wyodrębnionych plików aar do katalogu osadzonego. W systemie Windows dołącz rozszerzenie .zip do pliku .aar, otwórz go i skopiuj zawartość do katalogu osadzonego. W systemie macOS rozpakuj plik aar przy użyciu polecenia rozpakuj w terminalu (na przykład rozpakuj plik.aar).

W tym momencie ręcznie zainstalowano brakujące składniki, a projekt powinien być kompilowany bez błędów. Jeśli tak nie jest, sprawdź, czy pobrano wersję m2repository.zip archiwum odpowiadającą dokładnie wersji w komunikacie o błędzie, i sprawdź, czy jego zawartość została zainstalowana w poprawnych lokalizacjach zgodnie z opisem w powyższych krokach.

Podsumowanie

W tym artykule wyjaśniono, jak odzyskać dane po typowych błędach, które mogą mieć miejsce podczas automatycznego pobierania i instalowania bibliotek zależności. Opisano w nim sposób usuwania problematycznej biblioteki i ponownego kompilowania projektu w celu ponownego pobrania i ponownego zainstalowania biblioteki. Opisano w nim sposób pobierania biblioteki i instalowania jej w folderze zips . Opisano również bardziej zaangażowaną procedurę ręcznego pobierania i instalowania niezbędnych plików w celu obejścia problemów, których nie można rozwiązać za pomocą środków automatycznych.