Native reagieren: Android-Projekt nicht gefunden. Vielleicht zuerst reaktionsnatives Android ausführen?

86

Ich hatte ein Problem in meinem React-Native-Projekt, das früher gut funktionierte, aber plötzlich nicht mehr funktionierte. Wann immer ich den Befehl benutzte:

react-native run-android

Ich habe eine Fehlermeldung erhalten :

Android-Projekt nicht gefunden. Vielleicht zuerst reaktionsnatives Android ausführen?

Ich habe versucht zu laufen:

react-native android

Aber es hieß:

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

Nach dem Versuch:

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

Der zurückgegebene Fehler war:

Durchsuchen von Ordnern nach Symlinks in D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48 ms) Die App namemuss in der app.jsonKonfigurationsdatei definiert sein, um den Projektnamen zu definieren. Es darf keine Leerzeichen oder Bindestriche enthalten.

Dies ist die Datei 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
quelle
1
Wenn der Android-Ordner in der Root-Direktive fehlt, führen Sie den reaktionsnativen Auswurf aus.
Khurshid Ansari
1
@Khurshid Ansari Ihre Lösung hat nicht funktioniert, da der Fehler auftritt: "Der App-Name muss in der Konfigurationsdatei app.json definiert sein, um den Projektnamen zu definieren", auch wenn der Name definiert ist. Bitte beachten Sie die aktualisierte Frage.
Abhinav Saxena

Antworten:

151

Ich habe diese Frage aufgeworfen und mich selbst beantwortet, da ich dachte, sie würde anderen helfen, die mit ähnlichen Problemen konfrontiert sind. Ich hatte große Mühe, den wahren Grund dafür herauszufinden, da der im Terminal angezeigte Fehler nicht genau war.

Um das Problem zu beheben, aktualisieren Sie bitte das reaktionsnative Paket.

  1. Gehen Sie zum Projektstamm .

  2. Aktualisieren Sie das native React-Paket in der Eingabeaufforderung, indem Sie Folgendes eingeben:

    react-native upgrade.

  3. Akzeptieren Sie dann, um alle Dateien zu aktualisieren, indem Sie y (Yes)die Eingabeaufforderung eingeben .

Referenz: https://github.com/facebook/react-native/issues/9312

udai
quelle
9
Rettete den Tag :)
Muhammad
Wo befindet sich das native React-Paket? Bitte machen Sie klare Schritte
Lutaaya Huzaifah Idris
@LutaayaHuzaifahIdris Wie in der Antwort erwähnt, kann das native React-Paket im Projektstamm aktualisiert werden. Öffnen Sie also die Eingabeaufforderung und wechseln Sie zum Projektstamm. Aktualisieren Sie dann das native React-Paket.
Udai
Es ist ein React-Native-Upgrade, das ich nicht wollte.
Khurshid Ansari
Meine Arbeitslösung ist unten aufgeführt. Keine der oben genannten Lösungen hat für mich funktioniert: 1. Öffnen Sie den AVD-Manager in Android Studio und führen Sie ein virtuelles Gerät aus (Sie können AS anschließend schließen). 2. CMD in Ihren Projektordner und geben Sie 'expo start' ein. 3. Sobald die Expo gestartet ist, wählen Sie Option 2: "
Drücken
23

Ich weiß, dass es eine alte Frage ist, aber eine dieser Lösungen hat bei mir nicht funktioniert, und vielleicht gibt es andere wie mich. Ich habe mein Problem beim Ausführen dieses Befehls bereits gelöstrun-android

react-native eject
José Abimael Martínez
quelle
1
Aus irgendeinem Grund hat dies auch für mich den Trick getan. Ich habe die neuere Version des React Native-Upgrades mit "React-Native-Git-Upgrade" ausprobiert, wie vorgeschlagen, wenn Sie "React-Native-Upgrade" ausführen. Es hat bei mir nicht funktioniert.
Zaid Qureshi
2
Dieser Befehl erstellt Android und iOS Ordner in Ihrem Projekt neu
Khurshid Ansari
1
Ich denke, das ist die richtige Antwort. Nicht nur, weil es bei mir funktioniert hat, sondern weil dies nach meinem Verständnis aus den Dokumenten der beabsichtigte Weg ist, dies zu tun, und daher ohne andere Nebenwirkungen.
Daan
6
Der ejectBefehl wurde entfernt aus react-native.
Phantom Watson
12

Öffnen Sie Ihr React Native Project-Stammverzeichnis und suchen Sie Android -> App -> Build -> Intermediates -> Signing_Config -> Debug -> Out -> Signing-Config.json. Löschen Sie die Datei signing-config.json. Versuchen Sie es erneut

Oder

1) Manchmal, wenn wir eine ältere Version von React Native haben und einige neu installierte Pakete ältere Versionen nicht unterstützen. Anschließend müssen Sie das native React-Projekt mit dem Befehl react-native upgrade aktualisieren.

  1. Nach dem Aktualisieren des aktuellen Projekts auf eine neue Version sollte dieser Fehler behoben sein.
Sahil Kalaigar
quelle
9

Stellen Sie sicher, dass Sie das Projekt mit dem Befehl (non-expo) starten:

react-native init <your-project-name>

Wenn ein Ordner vorhanden ist, gehen Sie wie folgt vor:

reaktionsnatives Auswerfen


In der neuesten Version von react-native kommt dieser Vorschlag, wenn Sie versuchen, den folgenden Befehl auszugeben:

react-native eject

Durchsuchen von Ordnern nach Symlinks in D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48 ms) Die App namemuss in der app.jsonKonfigurationsdatei definiert sein, um den Projektnamen zu definieren. Es darf keine Leerzeichen oder Bindestriche enthalten.

Wenn Sie nun den folgenden Befehl eingeben:

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

Folgendes wird angezeigt:

Durchsuchen von Ordnern nach Symlinks in D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (56 ms) Sie sollten in Betracht ziehen, das neue Upgrade-Tool auf Git-Basis zu verwenden. Es erleichtert Upgrades, indem die meisten Konflikte automatisch gelöst werden. So verwenden Sie es: - Kehren Sie zur alten Version von React Native zurück. - Führen Sie "npm install -g react-native-git-upgrade" aus. - Führen Sie "react-native-git-upgrade" aus. Siehe https://facebook.github.io /react-native/docs/upgrading.html Die reaktionsnative Version in "package.json" stimmt nicht mit der installierten Version in "node_modules" überein. Versuchen Sie, "npm install" auszuführen, um dies zu beheben. Abbruch.

In den Vorschlägen für reaktionsnahe Facebook-Befehle gibt es eine klare Lösung.

Diese Befehle überprüfen die aktuelle Version und ob ein Update erforderlich ist oder nicht.

Noch eine Lösung:

React-Native: Befehl run-androidnicht erkannt. Möglicherweise durch npm install verursacht

Bitte beachten Sie auch:

Lösung zu "Expo: Modul LogReporter kann nicht gefunden werden"

Abhinav Saxena
quelle
Akzeptierte Antwort für mich, +10 Wiederholung. nach @Abhinav
Saeed
8

Mir hat das gefallen ... hat funktioniert !!

  1. Führen Sie im CMD-Projektstamm ein reaktionsnatives Upgrade aus .
  2. Wenn Sie immer noch Probleme haben, stellen Sie sicher , dass in den Abhängigkeiten json in package.json reaktionsnativ ist , und fügen Sie es hinzu, wenn nicht
  3. Wenn weiterhin Probleme auftreten, rufen Sie die Version von react native in cmd mit react-native -v ab und überprüfen Sie, ob der in cmd und package.json zurückgegebene Wert identisch ist. Aktualisieren Sie die Datei package.json mit dem in cmd zurückgegebenen Wert

Hier ist mein Problem gelöst.

m9m9m
quelle
3

Wir hatten dieses Problem, weil Dateien von Android- Ordner gradlew und gradlew.bat (Gradle- Startskript für UN * X bzw. Windows) irgendwie in die globale .gitignore-Datei gelangt sind und daher in lokalen Umgebungen nicht angezeigt wurden.

Tatsächlich wird ein reaktionsnatives Upgrade ausgeführt Befehl ausführen, werden diese Dateien wiederhergestellt, wodurch das Problem behoben wird.

Ilya Zatolokin
quelle
3

Falls der Befehl react-native nicht gefunden wird, sollten Sie als Ergänzung die reaktionsnative CLI installieren:

npm install -g react-native-cli

Dann können Sie den oben genannten Schritten folgen.

Weitere Details: react-native: Befehl nicht gefunden

Filipe
quelle
3

Öffnen Sie die Eingabeaufforderung als Administrator und rufen Sie den Projektordner auf. Führen Sie android aus (npx react-native run-android).

karthik mano
quelle
2

Wenn Sie Ihr Projekt wie folgt gestartet haben

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

Danach können Sie das oben erwähnte Problem in Frage stellen. Die Lösung lautet also:

npm run eject
Abhishek Yadav
quelle
1

Hier hat app.json keinen Namen, aber eine expo-bezogene Konfiguration. Fügen Sie einfach Felder für Namen und Anzeigenamen in app.json hinzu.

app.json (erste zwei Zeilen):

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

Führen Sie danach einfach Folgendes aus:

$ React-Native Eject

info Generieren des iOS-Ordners.

info Generieren des Android-Ordners.

Kein reaktionsnatives Upgrade erforderlich.

hp2017
quelle
Eigentlich funktioniert "expo eject" auch besser. Es gab mir Optionen und aktualisierte app.json und erstellte Android / iOS-Verzeichnisse.
HP2017
1

Entfernen Sie die Datei: Reagieren Sie auf das native Projektstammverzeichnis und suchen Sie Android -> App -> Build -> Intermediates -> Signing_Config -> Debug -> Out -> Signing-Config.json.

NewPHPer
quelle
1

Das Ausführen von Terminal als Administrator in Windows hat den Trick für mich getan ... Andere Lösungen haben nicht funktioniert.

AleksandarT
quelle
Dies ist nur ein Dank an die bestehende Antwort von Karthik Mano, nicht wahr? Wenn nicht, machen Sie bitte deutlicher, welche zusätzlichen Erkenntnisse diese Antwort bietet.
Yunnosch
1

Ich benutze Android Studio (Nicht-Expo) und das funktioniert bei mir

react-native init <your-project-name>
Michimcchicken
quelle
1

Sie müssen Ihr cmd mit Administratorrechten ausführen. Das hat das gleiche Problem für mich gelöst. Hat nicht "ausgeworfen" oder irgendetwas anderes gemacht.

hino
quelle
Es gibt viele ähnliche Antworten für dieselbe Frage. Anstatt Ihre Antwort hinzuzufügen, können Sie die vorhandene Antwort einfach verbessern, wenn sie Ihnen hilft.
Deepak Terse
1

Öffnen Sie Ihr React Native Project-Stammverzeichnis und suchen Sie nach Android -> App -> Build -> Intermediates -> Signing_Config -> Debug -> Out -> Signing-Config.json

Löschen Sie die Datei und versuchen Sie es erneut.

Guilherme Andrade
quelle
1

Ich war heute mit diesem Problem konfrontiert und keine der Lösungen hat für mich funktioniert, also habe ich eine andere gefunden.

Eine schlecht formatierte AndroidManifest.xml verursacht dieses Problem . Vielleicht haben Sie den Begrüßungsbildschirm wie heute eingestellt und AndroidManifest nicht richtig formatiert

Ben Hur Martins
quelle
0

Meine Arbeitslösung ist unten, keine der oben genannten hat bei mir funktioniert:

CD in Ihren Projektordner und geben Sie expo start --android ein.

Oder der lange Weg:

  1. Öffnen Sie den AVD-Manager in Android Studio und führen Sie ein virtuelles Gerät aus (Sie können AS anschließend schließen).
  2. CMD in Ihren Projektordner und geben Sie 'expo start' ein
  3. Sobald die Expo gestartet ist, wählen Sie Option 2: "Drücken Sie einen für Android-Emulator".

Es wird expo auf dem virtuellen Gerät installieren und Sie können von dort aus testen

Paul Gwamanda
quelle
0

Als ich lief react-native eject, bekam ich diesen Fehler:

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • Löschen Sie den MyProject/androidOrdner.
  • Ausführen react-native ejectDies hat den androidOrdner generiert

  • Dann laufen react-native run-android, um Android zu bauen

a_rahmanshah
quelle
0

Sie sollten in Betracht ziehen, das neue Upgrade-Tool zu verwenden, das auf Git basiert. Es erleichtert Upgrades, indem die meisten Konflikte automatisch gelöst werden. So verwenden Sie es: - Kehren Sie zur alten Version von React Native zurück. - Führen Sie "npm install -g react-native-git-upgrade" aus. - Führen Sie "react-native-git-upgrade" aus. Siehe https://facebook.github.io /react-native/docs/upgrading.html

Edelstahlbaby
quelle
0

Wenn Sie Ihr Projekt mit dem expoBefehl wie erstellt haben expo init projectname, müssen Sie anschließend Ihr Projekt auswerfen:

expo eject

Wenn Sie Ihr Projekt bis react-native init projectNamedahin erstellt haben, müssen Sie es verwenden

react-native eject
Deepika Kumari
quelle
Der
Auswurfbefehl wurde aus der reaktionsnativen Datei
0

Vielleicht ist es zu spät, ich habe den AndroidOrdner aus einer Sicherungsdatei ersetzt. Es hat bei mir funktioniert.

Dinesh Kumar
quelle
0

Ich habe das Problem gelöst, indem ich alle Instanzen von java.exe mit: beendet habe taskkill /f /im java.exe.

Kartik Soneji
quelle
0

Für mich hat "rm -rf android / app / build /" funktioniert

Arnaud Fouchet
quelle
0

Ich hatte den gleichen Fehler in einem Projekt (erstellt mit React Native CLI):

Geben Sie hier die Bildbeschreibung ein

Es stellte sich heraus, dass ich einen Syntaxfehler in meiner Android-Manifest-Datei hatte (android / app / src / main / AndroidManifest.xml).

Amin Dannak
quelle
0

In meinem Fall habe ich vergessen, Sudo hinzuzufügen. Wie folgt behoben:

sudo npx react-native run-android
Praneeth Pj
quelle