Po wielu próbach w końcu udało mi się skonfigurować ustawienia, które bezbłędnie pozwalają za każdym razem wystartować z pisanie aplikacji,
Poniżej przedstawiam kilka uwag z na które należy zwrócić uwagę.
- Standardowo musimy mieć zainstalowany Node.ja na swoim urządzeniu, W moim przypadku to nie było wymagane bo od dłuższego czasu wykorzystuję przy budowie stron do swojego workflow ale gdyby ktoś nie miał wklejam kod do instalacji na ubuntu
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash - sudo apt-get install -y nodejs
- Dwa musimy mieć zainstalowany package manager . Od dłuższego czasu używałem npm, ostatnimi czasy jednak przy innym projekcie próbowałem yarn , co skutkowało tym że czasami się myliłem i naprzemian uruchamiałem npm lub yarn, co wiadomo prowadzi do problemów. Dlatego zdecydowałem się wrócić do Npm zwłaszcza że nowy npm jest naprawdę szybki ( co wcześniej przemawiało na korzyść yarn ) odsyłam do tego artykułu npm@5 — Yarn killer? , aby było mi łatwiej powrócić do npm skorzystałem z tego skryptu okazał się bardzo pomocny. Dlaczego o tym piszę, bo przy instalacji react native proponuję skorzystanie z yarn i warto mieć szerszą perspektywę.
Tak dla przypomnienia podaję komendę aby zainstalować na Ubuntu najnowszą wersje npmsudo npm install npm@latest -g
- Kolejnym krokiem będzie zainstalowanie Javy , aby móc aplijację na androida mieć android studio a do tego wymagane jest zainstalowanie wcześniej javy (JDK)
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
- Kolejnym krokiem jest zainstalowanie ANDROID STUDIO najlepiej go pobrać z tej strony https://developer.android.com/studio/5.
Wypakowujemy do folderu gdzie docelowo chcieli byśmy mieć pliki ( musimy mieć na uwadze że w przeciwieństwie do windowsa na Linusie nie instalujemy tylko uruchamiamy skryptem./studio.sh
znajdującym się w folderze bin . Aby ułatwić sobie życie możemy dodać variable do PATH enviroment aby można było uruchamiać Android studio z dowolnego miejsca .
Dokładne wytłumaczenie jak dodać path enviroment jest tutaj https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path/#answer-26059
- Po Uruchomieniu android studio instalujemy ANDROID SDK poszczególne elementy
Uwaga: Aby uniknąć sobie kłopotów i aby wszystko działało jak należy powinniśmy dokładnie trzymać się wytycznych instalacji podanej na oficjalniej stronie dla Linuxa i Androida http://facebook.github.io/react-native/docs/getting-started.html Czyli :
Przechodzimy do zakładki Tools > SDK Manager . Po otwarciu pamiętajmy żeby zaznaczyć „Show package Details” , rozwiną nam się dodatkowe opcje . Musimy znaleźć „Android 6.0 (Marshmallow)” i zaznaczamy następujące opcje,
– Google APIs
– Android SDK Platform 23
– Intel x86 Atom_64 System Image
– Google APIs Intel x86 Atom_64 System Image - Konfigurujemy ANDROID_HOME environment variable
Dodajemy następujące line do naszego „$HOME/.bash_profile” jeśli nie mamy tego pliku należy go utworzyćexport ANDROID_HOME=$HOME/Android/Sdk export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/platform-tools
UWAGA: Należy pamiętać że jeśli wypakowaliśmy nasz katalog gdzie indziej. Jak np w moim przypadku na innym dysku , ANDROID_HOME environment variable musza prowadzić do odpowiednich katalogów. Wiec lepiej dla świętego spokoju jako docelowy folder dla Android studio wybrać domyślnie home.
- Instalujemy globalnie wszystkie nasze dependencies
npm install -g react-native-cli
- Tworzymy naszą Aplikacje
react-native init My-app
- Przechodzimy do aplikacji i możemy ją uruchomoć
cd my-app react-native run-android
- Należy pamiętać że przed uruchomieniem aplikacji , musimy albo wcześniej uruchomić AVD Manager w android studio i mieć uruchomiony nasz emulator telefonu. Lub mieć podłączone urządzenie przez adb.
- Pamiętajmy że podczas konfiguracji może pojawić się masa problemów, o to Lista z jakimi ja się zderzyłem:
a) przy próbie uruchomienia komendy „react-native run-android ” pojawiały się problemy i trzeba było korzystać „sudo” , problemy też pojawiały się przy instalacji intalacji modułów , pomogła zmiana pozwoleńsudo chown -R $USER ~/.npm sudo chown -R $USER /usr/local/lib/node_modules
b) Próbie uruchomienia „react-native run-android” pojawiał się następujący komunikat ,
„A problem occurred configuring project ‚:app’.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.”
Rozwiązanie: W folderze projektu android dodajemy plik o nazwie ” local.properties” po czym w pliku wskazujemy ścieżkę dostępu do naszego folderu instalacyjnego android studio## This file must *NOT* be checked into Version Control Systems, # as it contains information specific to your local configuration. # # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. #Sat Jul 07 19:28:49 CEST 2018 sdk.dir=/media/karol/Storage/android
c) Po uruchomieniu aplikacji na urządzeniu problem z informacja o problemie z połączeniem z urządzeniem. Przyczyną może być blokowany port.
Używamy tej komendy sprawdzamy procesy które mają dostęp do portu:sudo lsof -i :8081
Po sprawdzeniu portów usuwamy te które mogą być blokowane. tą komendą
kill -9 <PID>
d) Kolejnym problemem może być problem z połączeniem z naszym urządzeniem przez adb
W pierwszej kolejności sprawdzamy czy nasze urządzenie jest podłączone . Tu jest dobrze opisana komenda https://developer.android.com/studio/command-line/adbadb devices
W momencie gdy mamy coś takiego
List of devices attached ???????????? no permissions
Rozwiązaniem jest
sudo adb kill-server
sudo adb start-server
I teraz sprawdzamy
adb devices
e) Kolejnym problemem może być biały ekran bez żadnych komunikatów o błędach.
W moim przypadku pomogło odłączenie zerwanie połączenia adb, i restart aplikacji na telefonie po czym ponowne połączenie
Share Your Thoughts