React native: nie znaleziono projektu Androida. Może najpierw uruchomić natywnego Androida?

89

Miałem problem w moim projekcie React-Native, który wcześniej działał dobrze, ale nagle przestał działać. Za każdym razem, gdy użyłem polecenia:

react-native run-android

Otrzymałem błąd :

Nie znaleziono projektu systemu Android. Może najpierw uruchomić natywnego Androida?

I próbował uruchomiony:

react-native android

Ale powiedział:

Unrecognized command 'android' Run react-native --help to see list of all available commands

Po wypróbowaniu:

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>react-native eject

Zwrócony błąd:

Skanowanie folderów w poszukiwaniu dowiązań symbolicznych w D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48 ms) namemusi być zdefiniowane w app.jsonpliku konfiguracyjnym, aby zdefiniować nazwę projektu. Nie może zawierać spacji ani myślników.

To jest plik app.json:

{
  "expo": {
    "name": "AwesomeProject",
    "description": "A very interesting project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.project.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}
udai
źródło
1
jeśli w dyrektywie root nie ma folderu Android, uruchom wyrzucanie native-native.
Khurshid Ansari,
1
@Khurshid Ansari Twoje rozwiązanie nie działa, ponieważ nadchodzi błąd: „Nazwa aplikacji musi być zdefiniowana w pliku konfiguracyjnym app.json, aby zdefiniować nazwę projektu”, nawet jeśli nazwa jest zdefiniowana. Zobacz zaktualizowane pytanie.
Abhinav Saxena

Odpowiedzi:

155

Zadałem to pytanie i odpowiedziałem sobie, ponieważ uważałem, że pomoże to innym, którzy mają podobny problem. Bardzo się starałem, aby znaleźć prawdziwy powód, ponieważ błąd pokazany w terminalu nie był precyzyjny.

Aby rozwiązać ten problem, zaktualizuj pakiet react-native.

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

  2. Zaktualizuj pakiet natywny Reacta w wierszu polecenia , wpisując:

    react-native upgrade.

  3. Następnie zaakceptuj aktualizację wszystkich plików, wpisując y (Yes)w wierszu polecenia .

Źródła: https://github.com/facebook/react-native/issues/9312

udai
źródło
9
Uratowany dzień :)
Muhammad
gdzie znajduje się pakiet natywny Reacta? proszę o jasne kroki
Lutaaya Huzaifah Idris
@LutaayaHuzaifahIdris Jak wspomniano w odpowiedzi, pakiet native React można zaktualizować w katalogu głównym projektu. Więc otwórz wiersz polecenia i przejdź do katalogu głównego projektu. Następnie zaktualizuj pakiet macierzysty reakcji.
udai
jest zaktualizowany, reaguje natywny, czego nie chciałem.
Khurshid Ansari,
Moje działające rozwiązanie jest poniżej, żadne z powyższych nie działało dla mnie: 1. Otwórz menedżera AVD w Android Studio i uruchom urządzenie wirtualne (możesz później zamknąć AS) 2. CMD w folderze projektu i wpisz „expo start” 3. Po uruchomieniu Expo wybierz opcję 2, czyli „Naciśnij emulator Androida”. Zainstaluje ona expo na urządzeniu wirtualnym i będziesz mógł z niego testować
Paul Gwamanda
23

Wiem, że to stare pytanie, ale żadne z tych rozwiązań nie zadziałało i może są inne takie jak ja. Już wcześniej rozwiązałem problem z uruchomieniem tego poleceniarun-android

react-native eject
José Abimael Martínez
źródło
1
z jakiegoś powodu to też załatwiło sprawę dla mnie. Wypróbowałem nowszą wersję reaktywnej aktualizacji natywnej, używając opcji „React-native-git-upgrade”, jak zasugerowano, gdy uruchamiasz polecenie „React-native upgrade”.
Zaid Qureshi,
2
to polecenie ponownie utwórz folder android i ios w twoim projekcie
Khurshid Ansari
1
Myślę, że to właściwa odpowiedź. Nie tylko dlatego, że to zadziałało dla mnie, ale ponieważ z mojego zrozumienia z dokumentacji, jest to zamierzony sposób, aby to zrobić, a zatem bez innych skutków ubocznych.
Daan
8
ejectKomenda została usunięta z react-native.
Phantom Watson
17

Otwórz katalog główny projektu React Native i zlokalizuj android -> app -> build -> pośrednie -> signing_config -> debug -> out -> signing-config.json. usuń signing-config.json ten plik spróbuj ponownie

Lub

1) Czasami, jeśli mamy starszą wersję React Native, a niektóre z nowo zainstalowanych pakietów nie obsługują starszej wersji. Następnie musisz zaktualizować reaktywny projekt natywny za pomocą polecenia react-native upgrade.

  1. Po zakończeniu aktualizacji bieżącego projektu do nowej wersji ten błąd powinien zostać rozwiązany.
Sahil Kalaigar
źródło
9

Upewnij się, że uruchamiasz projekt poleceniem (non-expo):

react-native init <your-project-name>

Jeśli istnieje folder, wykonaj następujące czynności:

reagować natywnym wyrzutem


W najnowszej wersji React-native ta sugestia pojawia się, gdy próbujesz wydać polecenie:

react-native eject

Skanowanie folderów w poszukiwaniu dowiązań symbolicznych w D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48 ms) namemusi być zdefiniowane w app.jsonpliku konfiguracyjnym, aby zdefiniować nazwę projektu. Nie może zawierać spacji ani myślników.

Teraz, gdy wydasz następujące polecenie:

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>react-native upgrade

Pojawia się następujący komunikat:

Skanowanie folderów w poszukiwaniu dowiązań symbolicznych w D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (56 ms) Należy rozważyć użycie nowego narzędzia do aktualizacji opartego na Git. Ułatwia to aktualizacje, automatycznie rozwiązując większość konfliktów. Aby z niego skorzystać: - Wróć do starej wersji React Native - Uruchom „npm install -g React-native-git-upgrade” - Uruchom „React-native-git-upgrade” Zobacz https://facebook.github.io /react-native/docs/upgrading.html Wersja react-native w „package.json” nie odpowiada wersji zainstalowanej w „node_modules”. Spróbuj uruchomić „npm install”, aby to naprawić. Przerwanie.

W sugestiach poleceń reagujących na Facebooka jest jasne rozwiązanie.

Te polecenia sprawdzają aktualną wersję i czy jest wymagana aktualizacja, czy nie.

Jeszcze jedno rozwiązanie:

reak-native: polecenie run-androidnierozpoznane. Może to spowodowane instalacją npm

Zobacz także:

Rozwiązanie „Expo: nie można znaleźć modułu LogReporter”

Abhinav Saxena
źródło
Zaakceptowana odpowiedź ode mnie, +10 rep. do @Abhinav
Saeed
8

Tak mi się podobało ... Pracowałem !!

  1. W projekcie CMD root uruchom aktualizację natywną .
  2. jeśli nadal napotykasz problemy, upewnij się, że masz natywne reagowanie w zależnościach json w package.json , dodaj go, jeśli nie
  3. jeśli nadal występują problemy, pobierz wersję reagowania natywnego w cmd za pomocą funkcjireak-native -v i sprawdź, czy wartość zwrócona w cmd i package.json jest taka sama. zaktualizuj plik package.json wartością zwróconą w cmd

Tutaj mój problem został rozwiązany.

m9m9m
źródło
5

Otwórz wiersz polecenia jako administrator i przejdź do folderu projektu, uruchom Androida (npx React-Native Run-Android)

karthik mano
źródło
3

Mieliśmy ten problem, ponieważ pliki z folderu android gradlew i gradlew.bat (skrypt startowy Gradle odpowiednio dla UN * X, Windows) w jakiś sposób dostały się do globalnego pliku .gitignore, więc nie były prezentowane w środowiskach lokalnych.

Właściwie uruchomiona komenda react-native upgrade przywraca te pliki, rozwiązując problem.

Ilya Zatolokin
źródło
3

Jako uzupełnienie, w przypadku, gdy nie zostanie znaleziona komenda react-native, należy zainstalować responsywny interfejs CLI:

npm install -g react-native-cli

Następnie możesz wykonać czynności wymienione powyżej.

Więcej szczegółów: respond-native: polecenie nie zostało znalezione

Filipe
źródło
2

Jeśli rozpocząłeś projekt, wykonując następujące czynności

npm install -g create-react-native-app
create-react-native-app MyReactNative
npm install -g react-native-cli
npm start

po tym możesz napotkać problem wspomniany powyżej, więc rozwiązanie jest następujące:

npm run eject
Abhishek Yadav
źródło
2

Usuń plik: React Native Project Root Directory i zlokalizuj android -> app -> build -> pośrednie -> signing_config -> debug -> out -> signing-config.json.

NewPHPer
źródło
2

Zmierzyłem się dzisiaj z tym problemem i żadne z rozwiązań mi nie pomogło, więc znalazłem inne.

Źle sformatowany plik AndroidManifest.xml spowoduje ten problem , być może ustawiłeś ekran powitalny tak jak ja dzisiaj i nie sformatowałeś pliku AndroidManifest w prawidłowy sposób

Ben Hur Martins
źródło
1

Tutaj plik app.json nie ma nazwy, ale ma konfigurację związaną z expo. Więc po prostu dodaj pola nazwy i nazwy wyświetlanej w app.json.

app.json (pierwsze dwie linie):

{
"name": "AwesomeProject",
"displayName": "Awesome Project",
"expo": {
    "name": "AwesomeProject",
    "description": "A very interesting project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.project.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}

Następnie po prostu uruchom:

$ react-native eject

info Generowanie folderu iOS.

info Generowanie folderu Android.

Nie ma potrzeby przeprowadzania aktualizacji natywnej.

hp2017
źródło
właściwie, "expo eject" też działa lepiej. Dał mi opcje i zaktualizował app.json oraz stworzył katalogi android / ios.
hp2017
1

Uruchomienie terminala jako administrator w Windows załatwiło sprawę ... Inne rozwiązania nie działały.

AleksandarT
źródło
To tylko powiedzenie dzięki istniejącej odpowiedzi przez karthik mano, prawda? Jeśli nie, proszę wyjaśnić, jakiego dodatkowego wglądu dostarcza ta odpowiedź.
Yunnosch
1

Używam Android Studio (bez expo) i to działa dla mnie

react-native init <your-project-name>
Michimcchicken
źródło
1

Musisz uruchomić cmd z uprawnieniami administratora. To rozwiązało ten sam problem. Nie „wysunął” ani nic innego.

hino
źródło
Na to samo pytanie dostępnych jest wiele podobnych odpowiedzi. Zamiast dodawać swoją odpowiedź, możesz po prostu zagłosować za istniejącą odpowiedzią, jeśli ci to pomogło.
Deepak Terse
1

Otwórz katalog główny projektu React Native i zlokalizuj android -> aplikacja -> build -> pośrednicy -> signing_config -> debug -> out -> signing-config.json

Usuń plik i spróbuj ponownie.

Guilherme Andrade
źródło
1

U mnie działało „rm -rf android / app / build /”

Arnaud Fouchet
źródło
0

Moje rozwiązanie robocze jest poniżej, żadne z powyższych nie działało dla mnie:

CD do folderu projektu i wpisz expo start --android.

Lub długa droga:

  1. Otwórz menedżera AVD w Android Studio i uruchom urządzenie wirtualne (możesz później zamknąć AS)
  2. CMD do folderu projektu i wpisz „expo start”
  3. Po uruchomieniu Expo wybierz opcję 2, czyli „Naciśnij emulator Androida”

Zainstaluje expo na urządzeniu wirtualnym i możesz stamtąd testować

Paul Gwamanda
źródło
0

Kiedy biegałem react-native eject, otrzymałem ten błąd:

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • Usuń MyProject/androidfolder.
  • Uruchom react-native ejectSpowoduje to wygenerowanie androidfolderu

  • Następnie uruchom, react-native run-androidaby zbudować Androida

a_rahmanshah
źródło
0

Powinieneś rozważyć użycie nowego narzędzia do aktualizacji opartego na Git. Ułatwia to aktualizacje, automatycznie rozwiązując większość konfliktów. Aby z niego skorzystać: - Wróć do starej wersji React Native - Uruchom „npm install -g React-native-git-upgrade” - Uruchom „React-native-git-upgrade” Zobacz https://facebook.github.io /react-native/docs/upgrading.html

Stainlessbaby
źródło
0

Jeśli stworzyłeś swój projekt za pomocą expopolecenia jak expo init projectname, to potem musisz wysunąć swój projekt:

expo eject

Jeśli stworzyłeś swój projekt do react-native init projectNametego czasu, musisz użyć

react-native eject
Deepika kumari
źródło
Polecenie eject zostało usunięte z react-native github.com/react-native-community/cli/pull/275
Michimcchicken
0

Być może jest już za późno, podmieniłem Androidfolder z pliku kopii zapasowej. U mnie to zadziałało.

Dinesh Kumar
źródło
0

I rozwiązać problem poprzez zabicie wszystkich wystąpień java.exe z: taskkill /f /im java.exe.

Kartik Soneji
źródło
0

Miałem ten sam błąd w projekcie (utworzonym za pomocą React Native CLI):

wprowadź opis obrazu tutaj

okazuje się, że w moim pliku manifestu systemu Android (android / app / src / main / AndroidManifest.xml) wystąpił błąd składni.

Amin Dannak
źródło
0

W moim przypadku zapomniałem dodać Sudo. Naprawiono w następujący sposób,

sudo npx react-native run-android
Praneeth Pj
źródło
0

Usuń signing-config.json, a następnie spróbuj ponowniereact -native run-android

signing-config.json do pliku Ścieżka: android -> aplikacja -> build -> pośrednicy -> signing_config -> debug -> out -> signing-config.json

أحمد رحماني
źródło
0

Myślę, że jeszcze jedną prostą rzeczą, którą mogłeś sprawdzić, jest to, że wcześniej uruchamiałeś projekt jako inna rola użytkownika, tak jak w systemie Windows, jeśli wcześniej uruchamiałeś reaktywnego run-androida z rolą administratora.

Ajeet Singh
źródło
0

Usuń reaguj natywnego Androida, build foldera następnie ponów polecenienpx react-native run-android

Thirasha
źródło
0

W moim przypadku nie miałem odpowiednich uprawnień do folderu projektu.

Jeśli tak jest w Twoim przypadku, po prostu kliknij prawym przyciskiem myszy folder> Właściwości> Zabezpieczenia> Zaawansowane, a następnie zmień własność folderu na użytkownika, w tym podfoldery. Że należy to zrobić

Yan Jardim
źródło