react native android nie załadował pakietu JS

[2]}próbuję uruchomić AwesomeProject na moim Nexus5 (android 5.1.1).

Jestem w stanie zbudować projekt i zainstalować go na urządzeniu. Ale kiedy go uruchamiam, mam czerwony ekran mówiący

Nie można pobrać pakietu JS. Zapomniałeś uruchomić serwer programistyczny lub podłączyć urządzenie?

W reaccie natywnym iOS, mogę załadować jsbundle w trybie offline. Jak mogę zrobić to samo dla Androida? (A przynajmniej Gdzie mogę skonfigurować serwer adres?)

Update

Aby uruchomić z lokalnym serwerem, uruchom następujące polecenia w katalogu głównym projektu

  1. react-natywny start > / dev / null 2 > & 1 &
  2. ADB reverse tcp: 8081 tcp: 8081
Proszę spojrzeć na odpowiedź dsissitka, aby uzyskać więcej szczegółów.

Aby uruchomić bez serwera, spakuj plik jsfile do apk, uruchamiając:

  1. utwórz folder zasobów pod android/app/src/main
  2. curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

Proszę więcej szczegółów znajdziesz w odpowiedzi kzzzf.

Author: Matthew, 2015-09-14

21 answers

Aby spakować plik JS do swojego apk, mając uruchomiony serwer (react-native start), Pobierz pakiet do katalogu zasobów swojej aplikacji:

curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

W następnym wydaniu (0.12) naprawimy react-native bundle Polecenie do pracy z projektami Androida zgodnie z oczekiwaniami.

 100
Author: kzzzf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-17 01:02:38

W Ubuntu 14.04 u mnie działa:

cd (App Dir)
react-native start > /dev/null 2>&1 &
adb reverse tcp:8081 tcp:8081

Aktualizacja : Zobacz

Update 2: @ scgough otrzymaliśmy ten błąd, ponieważ React Native (RN) nie był w stanie pobrać JavaScript z serwera dev działającego na naszych stacjach roboczych. Możesz zobaczyć, dlaczego tak się dzieje tutaj:

Https://github.com/facebook/react-native/blob/42eb5464fd8a65ed84b799de5d4dc225349449be/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java#L116-L137

Jeśli Twoja aplikacja RN wykryje, że używasz Genymotion lub emulatora, próbuje pobrać JavaScript z GENYMOTION_LOCALHOST (10.0.3.2) lub EMULATOR_LOCALHOST (10.0.2.2). W przeciwnym razie zakłada się, że używasz urządzenia i próbuje pobrać JavaScript z DEVICE_LOCALHOST (localhost). Problem polega na tym, że serwer dev działa na lokalnym Hostie twojej stacji roboczej, a nie na urządzeniu, więc aby go uruchomić, musisz:

 86
Author: dsissitka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-15 12:06:41

Ok, myślę, że wiem, w czym problem. Miało to związek z wersją watchman, którą uruchomiłem.

W nowej powłoce uruchom brew update wtedy: brew unlink watchman następnie: brew install watchman

Teraz możesz uruchomić react-native start z folderu projektu

Zostawiam tę powłokę otwartą, tworzę nowe okno powłoki i uruchamiam: react-native run-android z folderu mojego projektu. Wszystko jest w porządku ze światem.

Ps. Byłem pierwotnie na wersji 3.2 watchman. To poprawiło mnie do 3.7.

Pps. Jestem w tym nowy, więc może nie jest to najszybsza droga do rozwiązania, ale zadziałało dla mnie.

* WIĘCEJ INFORMACJI O URUCHOMIENIU / DEBUGOWANIU NA URZĄDZENIU *

Jeśli zainstalujesz aplikację na swoim urządzeniu z Androidem, a nie emulatorze, otrzymasz czerwony ekran śmierci (red screen of death) z błędem Unable to load JS Bundle. Musisz ustawić serwer debugowania, aby Twoim urządzeniem był komputer z reactem...albo jego nazwa, albo adres IP.
  1. naciśnij urządzenie Menu button
  2. Wybierz Dev Settings
  3. Wybierz Debug server host for device
  4. wpisz adres IP komputera i przeładuj JS plus Port Reacta np. 192.168.1.10:8081

Więcej informacji: http://facebook.github.io/react-native/docs/running-on-device-android.html

 38
Author: scgough,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-16 13:37:17

Z katalogu projektu Uruchom

react-native start

Daje następujące rezultaty:

$ react-native start
 ┌────────────────────────────────────────────────────────────────────────────┐ 
 │  Running packager on port 8081.                                            │ 
 │                                                                            │ 
 │  Keep this packager running while developing on any JS projects. Feel      │ 
 │  free to close this tab and run your own packager instance if you          │ 
 │  prefer.                                                                   │ 
 │                                                                            │ 
 │  https://github.com/facebook/react-native                                  │ 
 │                                                                            │ 
 └────────────────────────────────────────────────────────────────────────────┘ 
Looking for JS files in
   /home/user/AwesomeProject 


React packager ready.

[11:30:10 PM] <START> Building Dependency Graph
[11:30:10 PM] <START> Crawling File System
[11:30:16 PM] <END>   Crawling File System (5869ms)
[11:30:16 PM] <START> Building in-memory fs for JavaScript
[11:30:17 PM] <END>   Building in-memory fs for JavaScript (852ms)
[11:30:17 PM] <START> Building in-memory fs for Assets
[11:30:17 PM] <END>   Building in-memory fs for Assets (838ms)
[11:30:17 PM] <START> Building Haste Map
[11:30:18 PM] <START> Building (deprecated) Asset Map
[11:30:18 PM] <END>   Building (deprecated) Asset Map (220ms)
[11:30:18 PM] <END>   Building Haste Map (759ms)
[11:30:18 PM] <END>   Building Dependency Graph (8319ms)
 16
Author: Pēteris Caune,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-14 20:32:10

Proste rozwiązanie, które działa dla mnie z Ubuntu 14.04.

react-native run-android

Emulator (już uruchomiony) zwróci: nie można pobrać pakietu JS; uruchom ponownie serwer JS:

react-native start
Naciśnij Reload JS na emulatorze. U mnie zadziałało. Mam nadzieję, że to pomoże
 13
Author: Raphael_b,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-02 21:40:10

W aplikacji na Androida otworzyłem Menu (Command + M W Genymotion) - > Dev Settings - > debug server host & port for device

Ustaw wartość na: localhost: 8081

U mnie zadziałało.

 7
Author: Daniel Masarin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-08 15:37:21

Po wypróbowaniu kombinacji odpowiedzi tutaj, to jest to, co działa dla mnie.

Używam Genymotion jako emulatora.

1 Uruchom Emulator Genymotion.

2 z Terminala

cd AwesomeProject
react-native run-android # it loads in genymotion and fails with bundle error
react-native start > /dev/null 2>&1 & # from dsissitka
adb reverse tcp:8081 tcp:8081 # from dsissitka

3 Przeładuj z emulatora.

Ładuje się! Teraz mogę zacząć się rozwijać.
 6
Author: ooolala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-24 04:15:40

Usuń aplikację z telefonu! Próbowałem kilku kroków, ale to w końcu się udało.

  1. jeśli wcześniej próbowałeś uruchomić aplikację, ale nie powiodło się, Usuń ją z urządzenia z Androidem.
  2. Run $ react-native run-android
  3. otwórz Menu React Rage Shake z poziomu aplikacji na urządzeniu z Androidem, przejdź do Dev Settings, a następnie do Debug server host & port for device. Tam wpisz swój adres IP serwera (IP komputera) i host 8081, np. 192.168.50.35:8081. Na komputerze mac adres IP komputera można znaleźć pod adresem System Preferences -> Network -> Advanced... -> TCP/IP -> IPv4 Address.
  4. Otwórz menu Rage Shake ponownie i kliknij Reload JS.
 4
Author: Andru,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-14 17:10:03

Najwyraźniej ADB reverse został wprowadzony w Androidzie 5.0
otrzymywanie" error: closed "dwa razy na" ADB reverse "

Chyba musimy iść dalej z odpowiedzią kzzzf

 2
Author: Nishanth Shankar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:26

Nie mam dość reputacji, aby komentować, ale to odnosi się do odpowiedzi dsissitka. Działa również w systemie Windows 10.

Dla przypomnienia, komendy to:

cd (App Dir)
react-native start > /dev/null 2>&1 &
adb reverse tcp:8081 tcp:8081
 2
Author: Sean Saito,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-03 17:33:06

Otrzymywałem to na Linuksie po zatrzymaniu react-native run-android procesu. Wygląda na to, że serwer węzłów nadal działa, więc następnym razem, gdy go uruchomisz, nie będzie działał poprawnie i Twoja aplikacja nie może się połączyć.

Poprawką jest zabicie procesu węzła, który działa w Xterm, który możesz zabić przez ctrl-c w tym oknie (łatwiej) lub możesz go znaleźć za pomocą lsof -n -i4TCP:8081, a następnie kill -9 PID.

Następnie uruchom react-native run-android ponownie.

 1
Author: Travis Reeder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-13 20:27:07

Sprawdź połączenie wifi.

Inną możliwością może być to, że albo nie jesteś podłączony do Wi-Fi, podłączony do złej sieci, albo adres ip jest nieprawidłowy w Ustawieniach dev. Z jakiegoś powodu mój android odłączył się od wifi i zacząłem dostawać ten błąd, nieświadomie.

 1
Author: Kelsey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-30 18:49:59

Uruchamianie na urządzeniu

Znalazłem inną odpowiedź.

  • ADB reverse: działa tylko na Androidzie 5.0+ (API 21).
  • inny: Otwórz menu dewelopera, potrząsając urządzeniem, przejdź do Dev Settings , przejdź do debug server host dla urządzenia , Wpisz adres IP maszyny i port lokalnego serwera dev
 1
Author: Mike Nguyen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-23 06:12:05

Aktualizacja

Teraz w windows nie trzeba uruchamiać React-native start. Pakowacz uruchomi się automatycznie.

 1
Author: Jagadish Upadhyay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-10 16:36:52

Jedna ważna rzecz, aby sprawdzić, że nikt nie wspomniał do tej pory: Sprawdź lokalny firewall, upewnij się, że jest wyłączony .

Zobacz moją odpowiedź tutaj: https://stackoverflow.com/a/41400708/1459275

 1
Author: niltoid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:43

Oto proste kroki, aby uruchomić aplikację na Androida (Wersja):

1. Przejdź do głównego katalogu aplikacji.

2. Uruchom to polecenie.

React-native bundle --platform android --dev false --entry-file indeks.android.js --bundle-output android / app / src / main/assets / index.android.bundle --assets-dest android / app / src/main / res

Wszystkie Twoje pliki są kopiowane.

3. Utwórz podpisany plik APK.

Otwórz android studio.

Zbuduj > Wygeneruj podpisany APK > [wypełnij wymagane dane, naciśnięcie klawisza musi zostać wygenerowane przed tym krokiem]

Twój APK powinien być generowany bez żadnych błędów. Zainstaluj na swoim urządzeniu i powinno to działać bez żadnych problemów.

Możesz również podłączyć urządzenie i bezpośrednio nacisnąć Uruchom ikonę w android studio do testowania.


Generowanie Klawiszy:

  1. Goto C:\Program Files\Java\jdkx.x. x_x\bin

  2. Run

Keytool-genkey-v-keystore d:\my_private_key.keystore-alias my-key-alias-keyalg RSA-keyze 2048-validity 10000

Prawdopodobnie poprosi Cię o podanie niektórych szczegółów. Zrób to, a Twój plik naciśnięcia klawisza ( my_private_key.keystore), który może być użyty do podpisania apk.

 1
Author: Edison D'souza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-16 06:08:38

Używam tylko Ubuntu i Androida i nie mogłem go uruchomić. Znalazłem naprawdę proste rozwiązanie, którym jest aktualizacja pakietu.plik json, zmiana tej linii:

"scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start"
  },

Do

"scripts": {
    "start": "adb reverse tcp:8081 tcp:8081 && node node_modules/react-native/local-cli/cli.js start"
  },

A następnie uruchamiasz serwer wpisując

npm run start

Zapewnia to, że urządzenie z Androidem szuka serwera węzła na komputerze, a nie lokalnie w telefonie.

 0
Author: IonicBurger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-23 11:30:35

Uruchamianie npm start z katalogu React-native wyszło mi na dobre.

 0
Author: Sergey Onishchenko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-14 06:55:13

Pierwsze pytanie dotyczyło przeładowania aplikacji w urządzeniu fizycznym.

Podczas debugowania aplikacji na urządzeniu fizycznym (np. przez adb), możesz przeładować pakiet JS, klikając przycisk "Akcja" w lewym górnym rogu urządzenia. Otworzy to menu opcji (Przeładuj, zdalnie Debuguj JS...).

Mam nadzieję, że to pomoże.

 0
Author: GuGuss,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:54

Ten błąd można łatwo rozwiązać, wykonując następujące kroki:

    //run the command at /android sdk / platforms-tool folder
        adb reverse tcp:8081 tcp:8081

    //now come to root folder of your app
    1. npm start
    2. create 'assets' folder inside rootApp/android/app/src/main/
    3. curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
    4. make sure anyone physical or virtual device attached is running.
    5. react-native run-android
 0
Author: Atif Hussain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-24 07:42:29

Możesz postępować zgodnie z instrukcjami podanymi na oficjalnej stronie, aby rozwiązać ten problem. Ten problem występuje na rzeczywistym urządzeniu , ponieważ pakiet JS Znajduje się w systemie deweloperskim, a aplikacja wewnątrz rzeczywistego urządzenia nie jest świadoma jego lokalizacji.

 0
Author: mthakuri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-07 07:55:42