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": [
      "**/*"
    ]
  }
}

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


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

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.

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”


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.


5

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


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.



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

2

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


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


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.


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.


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>

1

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


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.



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ć


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


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



0

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


0

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


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.


0

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

sudo npx react-native run-android

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


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.


0

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


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ć

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.