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ę.

  1. 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
  2. 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 npm

    sudo npm install npm@latest -g
  3.  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
  4.  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

  5. 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
  6. 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.

  7. Instalujemy globalnie wszystkie nasze dependencies
    npm install -g react-native-cli
  8.  Tworzymy naszą  Aplikacje
    react-native init My-app

     

  9.  Przechodzimy do aplikacji   i możemy ją uruchomoć
    cd my-app
    react-native run-android
  10. 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.
  11. 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/adb

    adb 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