Obecnie próbuję uzyskać serwer reagujący-natywny-webpack z ES6 działający na emulatorze Androida. Różnica polega na tym, że zaktualizowałem mój package.json
i build.grade
do korzystania z reagowania 0.18.0
i otrzymuję ten błąd podczas rozruchu. O ile wiem, AppRegistry
jest importowany poprawnie. Nawet gdybym wykomentował kod, ten błąd nadal się pojawia. Działa to bez problemu na iOS.
Co ja robię źle?
EDYCJA: Po wypróbowaniu innych szablonów, które obsługują 0.18.0, wciąż napotykam ten sam problem.
android
react-native
webpack
Dustin
źródło
źródło
One of the sources for assign has an enumerable key on the prototype chain.
Odpowiedzi:
właśnie zaktualizowałem do React-Native
0.18.1
Trudno jest mieć pewne problemy z zależnościami równorzędnymi w0.19.0-rc
wersji przedpremierowej.Wracając do twojego pytania, to co zrobiłem
cd android
sudo ./gradlew clean
(więcej informacji o tym, jak działa czyszczenie tutaj )następnie z powrotem do katalogu roboczego i uruchom
react-native run-android
po uaktualnieniu również powinieneś zrestartować swój npm.
mam nadzieję, że to działa dla Ciebie.
źródło
ANDROID_HOME
na swojej drodze. Dodałem równieżlocal.properties
plik z rozszerzeniemsdk.dir=
. Jakieś pomysły?sudo ./gradlew clean
, dobrze byłoby wspomnieć, że jest to ogromna operacja, która najwyraźniej ponownie pobiera i ponownie instaluje całą dystrybucję gradle./Users/karim/Library/Android/sdk
Miałem ten sam problem na iOS i powodem dla mnie było to, że mój plik index.ios.js był niepoprawny (ponieważ skopiowałem i wkleiłem jeden z przykładów bez patrzenia na jego zawartość), kończył się deklaracją eksportową modułu
Zamiast oczekiwanego
Myślę, że możesz mieć ten sam problem na Androidzie z index.android.js.
źródło
Główną przyczyną tego problemu może być to, że zainstalowałbyś wtyczkę i zapomniałbyś ją połączyć .
Spróbuj tego:
Uruchom ponownie aplikację.
Mam nadzieję, że to pomoże. Dajcie mi znać w komentarzach . Dzięki.
źródło
react-native link
bez nazwy pakietu jest przestarzałe i zostanie usunięte w następnej wersji.Rozwiązałem ten problem po prostu dodając
do mojego index.js
upewnij się, że istnieje w twoim index.js
źródło
Dla mnie moim problemem było umieszczenie niewłaściwego pliku wejściowego podczas pakowania.
Używałem App.js jako mojego pliku wejściowego, dlatego aplikacja nie mogła znaleźć AppRegistry
Poprawny:
Błędny:
źródło
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android /app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
wszystko działało, podczas gdy zamiast tego, gdy opublikowałem z fastlane, aplikacja zawiesiła się z tym błędem:Module AppRegistry is not a registered callable module (calling runApplication)
W build.gradle miałem, prawdopodobnie brud, niepoprawny plik wpisu! Dzięki jeszcze raz!Miejmy nadzieję, że to może zaoszczędzić komuś bólu głowy. Otrzymałem ten błąd po uaktualnieniu mojej wersji React-Native. Myląco pojawił się tylko po stronie androidów.
Moja struktura plików zawiera rozszerzenia
index.ios.js
iindex.android.js
. Oba zawierają kod:Musiałem
android/app/src/main/java/com/{projectName}/MainApplication.java
zmienićindex
naindex.android
:Następnie
app/build/build.gradle
zmień odentryFile
zindex.js
naindex.android.js
źródło
U mnie samo ponowne uruchomienie komputera naprawiło to. (Mój błąd brzmiał: „module appRegistry nie jest zarejestrowanym, wywoływalnym modułem (wywołując runapplication) silnik js: hermes”)
Inną najważniejszą odpowiedzią, której tu brakuje i która mogła zadziałać, było po prostu zabicie procesów węzłów:
killall -9 node
[ Moduł AppRegistry nie jest zarejestrowanym modułem, który można wywołać (wywołanie runApplication) ]
źródło
Nie wiem dlaczego, ale kiedy przenoszę AppRegistry.registerComponent z pliku index.js, który jest zawarty w index.android.js, do umieszczenia bezpośrednio w index.android.js, wydaje się, że działa.
źródło
Jeśli używasz niektórych przykładów, mogą one nie działać
Oto moja wersja dla widoku przewijania
źródło
Odinstalowałem go na Genymotion. Następnie uruchom,
react-native run-android
aby skompilować aplikację. I zadziałało. Spróbuj tego najpierw przed uruchomieniemsudo ./gradlew clean
, zaoszczędzi ci to dużo czasu.źródło
restart packager działał dla mnie. po prostu wyłącz reaguj natywny program pakujący i uruchom go ponownie.
źródło
jeśli napotykasz ten błąd w systemie Windows z systemem Android
Otwórz folder aplikacji w katalogu głównym i przejdź do folderu Android.
uruchom aplikację ponownie, react-native run-android
bhooom to działa
źródło
W moim przypadku
index.js
po prostu wskazuje na inny js zamiast mojego Launchera js omyłkowo, który nie zawieraAppRegistry.registerComponent()
.Więc upewnij się, że plik jest Twoim
index.js
celem do zarejestrowania klasy.źródło
Mój problem został rozwiązany przez zwiększenie mojej inotify max_user_watches:
źródło
Dla mnie był to problem z zależnością reag-natywną na następną wersję pakietu reagującego, podczas gdy w moim pliku package.json został określony stary. Aktualizacja wersji React rozwiązała ten problem.
źródło
Dla mnie po prostu połączyłem się z React Native as w ten sposób: React-native link
źródło
npm start - --reset-cache
Prawdopodobnie port jest już używany. Mam podobny problem, gdy po raz pierwszy uruchamiam react-native run-android, a następnie uruchamiam npm. Rozwiązuję to w ten sposób: Najpierw uzyskaj identyfikator procesu działającego na porcie 8081: sudo lsof -i: 8081
źródło
Otrzymałem ten błąd w Expo, ponieważ wyeksportowałem niewłaściwą nazwę komponentu, np
źródło
Rozwiązałem ten problem, wykonując następujące czynności:
źródło
Jeśli używasz komputera z systemem Windows, musisz to zrobić,
cd android
a./gradlew clean
następnie uruchomreact-native run-android
źródło