Próbując stworzyć natywny projekt na Androida 4.4.2, pojawia się ten ekran błędu
i nie mogłem znaleźć sposobu, aby go rozwiązać. Próbowałem zrestartować program pakujący, ponownie podłączyć urządzenie, a nawet ponownie zainstalować React Native i rozpocząć nowy projekt. W wersji 6.0.0 i nowszych działa dobrze.
android
react-native
Zygro
źródło
źródło
react-native run-android
? W tym przypadku pojawia się błąd, który jest dziwny, ponieważ w trybie debugowania pakiet JS afaik nie powinien być potrzebny, ponieważ ma łączyć się z serwerem pakietów.Odpowiedzi:
Możliwym rozwiązaniem jest to, że najprawdopodobniej najpierw nie pakujesz aplikacji w pakiet, wykonaj następujące kroki, a następnie wdróż plik app-debug.apk na swoim urządzeniu
(jeśli folder
assets
nie istnieje, utwórz go)Następnie uruchom z katalogu głównego projektu
zainstaluj utworzony apk na swoim urządzeniu z lokalizacji:
android/app/build/outputs/apk/app-debug.apk
daj mi znać, jeśli to rozwiąże problem
EDYCJA :
Możesz po prostu umieścić go w swoim pliku package.json jako skrypt, aby go zautomatyzować, wierzę, że zostanie to naprawione w nadchodzących wydaniach react-native i zostanie wykonane przed złożeniem ostatecznego APK, więc nie będzie to potrzebne (mam nadzieję także)
położyć :
lub, jak wspomniano, odpowiednik curl, ale w większości przypadków powyższy jest bardziej wytrzymały
źródło
Trafiłem też na ten problem. To, co zrobiłem, to wymuszenie zabicia aplikacji na moim urządzeniu, a następnie otworzyłem kolejną konsolę i pobiegłem
a potem ponownie otworzyłem aplikację z mojego urządzenia i znowu zaczęła działać.
EDYCJA: Jeśli używasz urządzenia z Androidem przez USB i odłączyłeś je lub komputer poszedł w stan uśpienia, być może będziesz musiał najpierw uruchomić
źródło
react-native run-android
. Używaniereact-native start
nigdy nie było dla mnie wymagane, kiedy robiłemreact-native run-ios
adb reverse tcp:8081 tcp:8081
samo w sobie było dla mnie wystarczające. Wielkie dzięki!Właśnie dostałem ten błąd. Oto, co zrobiłem, aby naprawić: wybrałem
Dismiss
, wszedłem do menu programisty, a następnieDev Settings
, wybierzDebug server host & port for device
, dodałem adres IP i port moich komputerów:192.168.0.xx:8xxx
użyj dowolnego adresu IP przypisanego do komputera dewelopera w sieci Wi-Fi. Port jest zwykle:8081
Kiedy to zrobiłem, wszystko poszło dobrze. Ponadto, będąc w menu deweloperskim, pamiętaj, aby wybrać
Enable Live Reload
iDebug JS Remotely
, znacznie ułatwia to życie podczas debugowania.źródło
ifconfig
, a następnie znajdź adres inet: xxx.xxx.xxx.xxx, gdzie xxx * toOto, co zadziałało dla mnie (po wypróbowaniu każdego innego rozwiązania, które znalazłem ...):
Wbiegnij do
adb reverse tcp:8081 tcp:8081
środka\Android\sdk\platform-tools
źródło
react-native run-android
próbuje uruchomić to polecenie i zależy od zmiennej środowiskowej systemu Windows,path
która zawieraplatform-tools
ścieżkę.Dostałem to również, kiedy po raz pierwszy zacząłem z React Native, używając fizycznego urządzenia. W takim przypadku musisz zrobić kilka dodatkowych rzeczy, zanim zaczniesz. Musisz wprowadzić pewne informacje o swojej maszynie deweloperskiej w „Dev Settings” w React Native.
Gdy zobaczysz błąd, potrząśnij urządzeniem . Pojawi się okno dialogowe, ostatnią opcją będą „Ustawienia deweloperskie”. Wybierz opcję „Debuguj serwer i port dla urządzenia” i wprowadź lokalny adres IP oraz używany port (zwykle 8081).
Zobacz ostatni akapit https://facebook.github.io/react-native/docs/running-on-device-android.html
źródło
Jeśli żadne z rozwiązań nie działa dla Ciebie, spróbuj tego:
Okazało się, że mój
<root>/android/app/build/intermediates/assets/debug
folder był pusty i uruchamiająccd android && ./gradlew assembleDebug
nie tworzyłem tych wymaganych plików, które są później używane przez wątek javascript w naszych natywnych aplikacjach reagowania.Uruchomiłem ręcznie następujące polecenie, które powinno być idealnie utworzone przez polecenie kompilacji debugowania.
Po uruchomieniu tych poleceń znalazłem w tym katalogu dwa pliki paczek
<root>/android/app/build/intermediates/assets/debug
A potem znowu uruchomiłem,
cd android && ./gradlew installDebug
moja aplikacja znowu zaczęła działać.Będzie więcej debugować i zaktualizuje to, co faktycznie nie działa.
źródło
W osobnym terminalu podłącz urządzenie do komputera i uruchom następujące polecenia:
Terminal aplikacji :
źródło
Trochę za późno, ale to naprawdę działa dla mnie.
react-native run-android
.react-native start
.Pierwsze polecenie utworzy
apk
dla Androida i wdroży je na twoim urządzeniu, jeśli jest połączone. Po otwarciu aplikacji wyświetli się czerwony ekran z błędem. Następnie uruchom drugie polecenie, które uruchomi program do pakowania i zbuduje pakiet aplikacji.źródło
Wypróbuj to polecenie w terminalu, a następnie załaduj ponownie. U mnie to zadziałało
adb reverse tcp: 8081 tcp: 8081
źródło
zobacz numer :
1. reaktywny start
2. kliknij
Reload(R,R)
swoje urządzenie.źródło
react-native run-android
źródło
restart the genymotion
? Ty vole.Miałem ten sam wyjątek na urządzeniu Z3 Compact D5803 - 6.0.1
Otworzyłem plik .buckconfig i zmieniłem wiersz:
target = Google Inc.:Google APIs:23
do
target = Google Inc.:Google APIs:24
Ponieważ widziałem w SDK Manager, że Android 6.X ma api poziom 24.
źródło
Dla mnie to dlatego, że
adb
nie było wPATH
. Znajduje się/Users/man/Library/Android/sdk/platform-tools
dla mnie, może być dla ciebie gdzie indziej, ale i tak znajdź go i dodaj do swojej ścieżki, aby zobaczyć, czy to pomoże.źródło
Ponieważ używasz Androida <5.0, nie możesz użyć domyślnej
adb reverse
metody, ale Facebook dodał oficjalną dokumentację, aby połączyć się z serwerem deweloperskim przez Wi-Fi , która obsługuje twoją wersję. Cytując instrukcje dla MacOS, ale mają je też dla Linuksa i Windowsa:źródło
Miał ten problem „losowo” i zajęło mi trochę czasu, zanim zrozumiałem, co było nie tak w moim scenariuszu.
Po aktualizacji do React-native-cli 2.0.1 w dzienniku pojawił się komunikat, który pomógł mi w wykopaniu i znalezieniu głównej przyczyny:
Po zbadaniu kilku linków znalazłem ten:
Nie można rozpoznać serwera JS
Ponieważ pracuję w systemie Windows, uruchomiłem netstat i odkryłem, że mój odtwarzacz VLC również działa na porcie 8081, powodując problem. Tak więc w moim przypadku, gdybym uruchomił serwer vlc przed serwerem reagującym, to nie zadziałałoby.
Ten sam komunikat dziennika nie był wyświetlany we wcześniejszych wersjach reagowania-natywnego-cli, przez co po cichu kończyło się niepowodzeniem.
TL, DR: sprawdź, czy coś działa na tym samym porcie co menedżer pakietów (domyślnie 8081)
źródło
Mój problem polegał na tym, że przejrzałem
AndroidManifest.xml
plik i usunąłem ten wiersz<uses-permission android:name="android.permission.INTERNET" />
ponieważ moja aplikacja nie potrzebuje internetu. Jednak natywna aplikacja do debugowania React potrzebuje dostępu do Internetu (aby uzyskać dostęp do programu pakującego) Ups. :)
źródło
Spróbuj wyczyścić pamięć podręczną
źródło
Sprawdź, czy podczas uruchamiania wystąpił następujący błąd
react-native run-android
:adb server version (XX) doesn't match this client (XX); killing...
W takim przypadku upewnij się
/usr/local/opt/android-sdk/platform-tools/adb
i/usr/local/bin/adb
są wskazywane na to samoadb
W moim przypadku jeden został wskazany
/Users/sd/Library/Android/sdk/platform-tools/adb
(Android SDK), a inny wskazał/usr/local/Caskroom/android-platform-tools/26.0.2/platform-tools/adb
(Homebrew)Problem został rozwiązany po tym, jak oba wskazywały
/Users/sd/Library/Android/sdk/platform-tools/adb
(Android SDK)źródło
Mam też ten błąd, naprawdę zdezorientowany. bo wszystkie odpowiedzi nie działają. Zaraz po dodaniu adb do ścieżki.
źródło
Dla mnie miałem włączoną i aktywną synchronizację boczną. Zamknięcie go natychmiast spowodowało, że problem zniknął. Warto zamknąć tę lub jakąkolwiek inną komunikację między komputerem a urządzeniem
źródło
Skończyło się na tym, że musiałem otworzyć port, którego używałem (domyślnie 8081). W systemie Linux możesz wykonać następujące czynności
Możesz przetestować, czy rzeczywiście musisz to zrobić. Po prostu przejdź do swojego serwera deweloperskiego w Chrome na urządzeniu z Androidem. Jeśli nie odpowiada, to może być to, czego potrzebujesz. Jeśli odpowie, to ci nie pomoże.
źródło
Moja droga to:
Następnie w urządzeniu za pomocą:
Zobacz w konsoli reaguj natywnie, będzie pobierać dane pakietu js.
źródło
Miałem ten sam problem. Kiedy stworzyłem natywny projekt React za pomocą aplikacji AwesomeProject create -reak-native-app , działał dobrze w aplikacji Expo na telefonie. Potem chciałem użyć tego projektu szybkiego startu do rozwijania mojego projektu i dostałem ten sam błąd co Ty.
Po kilku poszukiwaniach stwierdzam, że lepiej jest rozpocząć nowy projekt z wykorzystaniem React-native init AwesomeProject (z wszystkimi ustawieniami w responsywnych dokumentach natywnych) Następnie uruchom to polecenie:
To powinno naprawić problem z pakietem (--dev false nie wyświetla ostrzeżeń)
Wszystko, co musisz zrobić, aby aplikacja działała na Twoim wirtualnym / rzeczywistym urządzeniu, to:
I powinno działać dobrze. Przynajmniej to zadziałało dla mnie.
źródło
Dla mnie problemem było to, że „adb” nie został rozpoznany - sprawdź tę odpowiedź.
Aby rozwiązać ten problem, dodaj C: \ Users \ USERNAME \ AppData \ Local \ Android \ sdk \ platform-tools do zmiennych środowiskowych
źródło
Większość z nas po raz pierwszy staje przed tym problemem, gdy zaczynamy reagować na natywny projekt nr 1.
Kilka prostych kroków rozwiązało mój problem:
Przykładowy projekt stworzyłem za pomocą polecenia:
Rozwiązanie
Rozwiązaniem jest pomoc
local-cli\runAndroid\adb.js
w znalezieniuadb.exe
, tak samo jaklocal-cli\runAndroid\runAndroid.js
:znajdź instrukcję zamiany pod nazwą projektu (cokolwiek podałeś)
\node_modules\react-native\local-cli\runAndroid
Zastąpić:
Przez:
po wykonaniu powyższej zamiany, po prostu uruchom React-native run-android w swoim cmd, połączy apk i najpierw spróbuje zainstalować pakiet js lokalnie na twoim urządzeniu. (Powodzenie)
źródło
Wypróbowałem wiele sugestii powyżej / poniżej, ale ostatecznie problemem, który napotkałem, były uprawnienia z Watchman, który został zainstalowany wcześniej przy użyciu homebrew. Jeśli spojrzysz na komunikaty terminala podczas próby użycia emulatora i napotkasz na emulatorze błąd „Odmowa uprawnień” w odniesieniu do strażnika wraz z komunikatem „Nie można uzyskać BatchedBridge”, wykonaj następujące czynności:
Przejdź do
/Users/<username>/Library/LaunchAgents
katalogu i zmień ustawienia uprawnień, aby użytkownik mógł czytać i pisać. Dzieje się tak niezależnie od tego, czy rzeczywiście masz tamcom.github.facebook.watchman.plist
plik.źródło
Odkryłem, że muszę również dodać plik
aby aplikacja działała poprawnie.
źródło
Mam ten sam problem, ale to był głupi błąd z mojej strony ...
Ze studia Android uruchomiłem
installDebug/installRelease
skrypt gradle z programuapp
projet zamiastroot
projet.źródło
Najprostszy sposób!
Jesteś gotowy!
źródło
Po prostu uruchom ponownie system lub cały pakiet, a problem może zostać naprawiony.
źródło