W Android Studio wprowadzono nowy system budowania aplikacji oparty o Gradle (polecam bardzo ciekawy artykuł). Działa on bezproblemowo i bez żadnego dodatkowego konfigurowania pod warunkiem ciągłego dostępu do Internetu. Niestety zdarzają się momenty, w których musimy tworzyć aplikację a nie mamy dostępu do Internetu (np. podczas wykładu na auli z niedziałającym WiFi). Aby przygotować się na taką ewentualność należy zawczasu wykonać wymienione poniżej czynności.
Błędy w Android Studio w trybie offline
Zacznijmy od tego jakie błędy mogą się pojawić gdy tworzymy aplikację w Android Studio bez dostępu do Internetu:
- „Failed to complete Gradle execution. Cause: Protocol family unavailable”
- „Error: A problem occured configuring root project 'ApplicationName’. Could not resolve all dependencies for configuration„
- „Failed to refresh Gradle project 'ApplicationName’ Unknown host 'repo1.maven.org’”
Błędy te są związane z brakiem możliwości pobrania pluginów do Gradla lub bibliotek zależnych (np. Android Support Library).
*Rozwiązanie – automatyczne utworzenie cache
W Gradle wprowadzono tryb offline. Podczas pracy w nim, Gradle nie będzie uzyskiwać dostępu do Internetu (np. żeby pobrać zależności). Jeśli żądane moduły nie znajdują się w pamięci podręcznej proces budowania nie powiedzie się. Aby wymusić ten tryb w Android Studio należy wykonać poniższe czynności mając dostęp do Internetu (najważniejsze moduły zostaną pobrane i zapisane w pamięci cache na dysku).
1. Utworzenie przykładowego projektu
Po uruchomieniu Android Studio wybieramy New Project… W przypadku gdy mamy już jakiś wcześniej utworzony projekt, wybieramy go i przechodzimy do następnego punktu.
W następnym oknie zostawiamy domyślnie zaznaczone opcje, dodatkowo zaznaczamy GridLayout, Fragment, AppCompat i przechodzimy dalej.
2. Włączamy tryb offline
Aby tryb offline był dostępny dla Twojego projektu za każdym razem musisz go uruchomić przechodząc do ustawień File->Settings…
i w zakładce Gradle zaznaczając Offline work
Klikamy OK i następnie Build->Rebuild Project aby Android Studio zbudował aplikację (pobrał i zachował w cache wymagane moduły):
3. Koniec
Możemy teraz wyłączyć dostęp do Internetu, stworzyć nowy projekt (lub wprowadzić zmiany w obecnym) i spróbować zbudować aplikację. Cały proces powinien udać się teraz bez dostępu do Internetu.
Na koniec możemy usunąć stworzony tymczasowo nowy projekt. Od tego momentu cache systemu Gradle będzie dostępne dla wszystkich (nowych i istniejących) projektów.
**Rozwiązanie – Ręczne utworzenie cache (zaawansowane)
Rozwiązanie dla zaawansowanych, nietestowane. Jeśli nie wiesz o co chodzi - nie czytaj.