React native: progetto Android non trovato. Forse eseguire prima Android nativo di reazione?


90

Ho avuto un problema nel mio progetto React-Native che funzionava bene prima ma improvvisamente ha smesso di funzionare. Ogni volta che ho usato il comando:

react-native run-android

Ho ricevuto un errore :

Progetto Android non trovato. Forse eseguire prima Android nativo di reazione?

Ho provato a correre:

react-native android

Ma ha detto:

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

Dopo aver provato:

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

L'errore restituito è stato:

Scansione cartelle per collegamenti simbolici in D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) L'app namedeve essere definita nel app.jsonfile di configurazione per definire il nome del progetto. Non deve contenere spazi o trattini.

Questo è il file 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
se la cartella Android non è presente nella direttiva root, eseguire l'espulsione nativa di reazione.
Khurshid Ansari

1
@Khurshid Ansari la tua soluzione non ha funzionato, poiché è in arrivo l'errore: "Il nome dell'app deve essere definito nel file di configurazione app.json per definire il nome del progetto" anche quando il nome è definito. Si prega di consultare la domanda aggiornata.
Abhinav Saxena

Risposte:


156

Ho sollevato questa domanda e ho risposto a me stesso perché pensavo che aiuterà altri che stanno affrontando problemi simili. Ho faticato molto per scoprire il vero motivo alla base poiché l'errore mostrato nel terminale non era preciso.

Per risolvere il problema, aggiorna il pacchetto react-native.

  1. Vai alla radice del progetto .

  2. Aggiorna il pacchetto nativo React nel prompt dei comandi digitando:

    react-native upgrade.

  3. Quindi accetta per aggiornare tutti i file digitando y (Yes)nel prompt dei comandi .

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


9
Salvato la giornata :)
Muhammad

dove si trova il pacchetto nativo di React? si prega di fare passi chiari
Lutaaya Huzaifah Idris

@LutaayaHuzaifahIdris Come accennato nella risposta, il pacchetto nativo di react può essere aggiornato sulla radice del progetto. Quindi, apri il prompt dei comandi e vai alla radice del progetto. Quindi aggiorna il pacchetto nativo di react.
udai

è aggiornato nativo di reazione che non volevo.
Khurshid Ansari

La mia soluzione di lavoro è qui sotto, nessuna delle precedenti ha funzionato per me: 1. Apri AVD manager in Android Studio ed esegui un dispositivo virtuale (puoi chiudere AS in seguito) 2. CMD nella cartella del tuo progetto e digita "expo start" 3. Una volta avviato Expo, scegli l'opzione 2 che è "Press a for Android emulator".
Installerà

25

Apri la directory principale del tuo progetto React Native e individua android -> app -> build -> intermedi -> signing_config -> debug -> out -> signing-config.json. eliminare signing-config.json questo file riprovare

O

1) A volte se abbiamo una versione precedente di React Native e alcuni dei pacchetti appena installati non supportano la versione precedente. Quindi devi aggiornare il progetto react native usando il comando di aggiornamento react-native.

  1. Dopo aver aggiornato il progetto corrente alla nuova versione, questo errore dovrebbe essere risolto.

23

So che è una vecchia domanda, ma nessuna di queste soluzioni ha funzionato per me e forse ce ne sono altre come me. Ho già risolto il mio problema eseguendo questo comandorun-android

react-native eject

1
per qualche motivo questo ha funzionato anche per me, ho provato la versione più recente di react native upgrade usando "react-native-git-upgrade" come suggerito quando esegui "react-native upgrade" non ha funzionato per me.
Zaid Qureshi

2
questo comando ricrea la cartella Android e iOS nel tuo progetto
Khurshid Ansari

1
Penso che questa sia la risposta corretta. Non solo perché ha funzionato per me, ma perché dalla mia comprensione dei documenti, questo è il modo previsto per farlo e quindi senza altri effetti collaterali.
Daan

10
Il ejectcomando è stato rimosso da react-native.
Phantom Watson

9

Assicurati di avviare il progetto usando il comando (non expo):

react-native init <your-project-name>

Se esiste una cartella, segui:

espulsione nativa di reazione


Nell'ultima versione di react-native questo suggerimento arriva quando provi a eseguire il comando:

react-native eject

Scansione cartelle per collegamenti simbolici in D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) L'app namedeve essere definita nel app.jsonfile di configurazione per definire il nome del progetto. Non deve contenere spazi o trattini.

Ora quando esegui il seguente comando:

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

Viene visualizzato quanto segue:

Scansione delle cartelle per i collegamenti simbolici in D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (56ms) Dovresti considerare l'utilizzo del nuovo strumento di aggiornamento basato su Git. Rende gli aggiornamenti più facili risolvendo automaticamente la maggior parte dei conflitti. Per usarlo: - Torna alla vecchia versione di React Native - Esegui "npm install -g react-native-git-upgrade" - Esegui "react-native-git-upgrade" Vedi https://facebook.github.io /react-native/docs/upgrading.html versione react-native in "package.json" non corrisponde alla versione installata in "node_modules". Prova a eseguire "npm install" per risolvere questo problema. Abortire.

Nei suggerimenti dei comandi nativi di reazione di Facebook, c'è una soluzione chiara.

Questi comandi controllano la versione corrente e se è necessario o meno un aggiornamento.

Un'altra soluzione:

Reazione nativa: comando run-androidnon riconosciuto. Forse causato dall'installazione di npm

Si prega di vedere anche:

Soluzione a "Expo: impossibile trovare un modulo LogReporter"


Risposta accettata per me, +10 rep. a @Abhinav
Saeed

8

Mi è piaciuto questo ... Ha funzionato !!

  1. Nella radice del progetto CMD eseguire l' aggiornamento nativo reattivo .
  2. se riscontri ancora problemi, assicurati di avere reattivo nativo nelle dipendenze json in package.json , in caso contrario aggiungilo
  3. se riscontri ancora problemi, scarica la versione di react native in cmd usando react-native -v e controlla se il valore restituito in cmd e package.json sono gli stessi. aggiorna il package.json con il valore restituito in cmd

Qui il mio problema è stato risolto.


6

Apri il prompt dei comandi come amministratore e vai alla cartella del progetto, esegui android (npx react-native run-android)


4

Rimuovere il file: React Native Project Root Directory e individuare android -> app -> build -> intermiates -> signing_config -> debug -> out -> signing-config.json.


4

Ho dovuto rinnovare il mio AndroidManifest.xml perché avevo un errore di sintassi da qualche parte (avevo una "/" in più da qualche parte). Ora è stato risolto. Stai molto attento con la tua sintassi ...


Come è questa una risposta?
theWellHopeErr

3

Abbiamo riscontrato questo problema perché i file della cartella Android gradlew e gradlew.bat (script di avvio Gradle per UN * X, rispettivamente Windows) in qualche modo sono entrati nel file .gitignore globale e quindi non sono stati presentati in ambienti locali.

Effettivamente l'esecuzione del comando di aggiornamento react-native ripristina quei file, risolvendo così il problema.


3

Come complemento, nel caso in cui il comando react-native non venga trovato, è necessario installare la CLI react-native:

npm install -g react-native-cli

Quindi puoi seguire i passaggi che le persone hanno detto sopra.

Maggiori dettagli: react-native: comando non trovato


3

Apri la directory principale del tuo progetto React Native e individua android -> app -> build -> intermedi -> signing_config -> debug -> out -> signing-config.json

Elimina il file e riprova.


2

Se hai iniziato il tuo progetto seguendo

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

dopo questo, puoi affrontare il problema menzionato sopra in questione Quindi la soluzione è:

npm run eject

2

Oggi ho affrontato questo problema e nessuna delle soluzioni ha funzionato per me, quindi ne ho trovata un'altra.

AndroidManifest.xml mal formattato causerà questo problema , forse hai impostato la schermata iniziale come me oggi e non hai formattato AndroidManifest nel modo corretto


1

Qui, app.json non ha un nome, ma ha una configurazione relativa a expo. Quindi aggiungi semplicemente il nome e visualizza i campi del nome in app.json.

app.json (prime due righe):

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

Dopo questo, esegui:

$ react-native eject

info Generazione della cartella iOS.

info Generazione della cartella Android.

Non è necessario eseguire l'aggiornamento nativo di reazione.


in realtà, anche "expo eject" funziona meglio. Mi ha dato opzioni e app.json aggiornato e ha creato directory Android / ios.
hp2017

1

L'esecuzione di Terminal come amministratore in Windows ha fatto il trucco per me ... Altre soluzioni non hanno funzionato.


Questo sta solo dicendo grazie alla risposta esistente di karthik mano, non è vero? In caso contrario, si prega di rendere più ovvio le informazioni aggiuntive fornite da questa risposta.
Yunnosch

1

Sto usando Android Studio (non expo) e questo funziona per me

react-native init <your-project-name>

1

Devi eseguire il tuo cmd con i privilegi di amministratore. Questo ha risolto lo stesso problema per me. Non è stato eseguito "espulsione" o altro.


Ci sono molte risposte simili disponibili per la stessa domanda. Invece di aggiungere la tua risposta, potresti semplicemente votare la risposta esistente se ti è stato d'aiuto.
Deepak Terse

1

Nel mio caso, ho dimenticato di aggiungere Sudo. Risolto come segue,

sudo npx react-native run-android

1

Elimina signing-config.json, quindi riprova react-native run-android

signing-config.json percorso file: android -> app -> build -> intermedi -> signing_config -> debug -> out -> signing-config.json


1

Penso che un'altra cosa semplice che avresti potuto controllare, è se in precedenza avessi eseguito il progetto come un ruolo diverso di un utente, come in Windows se avessi eseguito in precedenza il run-android reattivo con un ruolo di amministratore.


Ho avuto un problema simile alla domanda sopra e avviando il terminale con le autorizzazioni di amministratore (su Windows) questo errore è andato via.
LakeRunner

1

Nel mio caso non avevo le autorizzazioni giuste per la cartella del mio progetto.

Se questo è il tuo caso, fai clic con il tasto destro sulla cartella> Proprietà> Sicurezza> Avanzate e quindi modifica la proprietà della cartella per il tuo utente, comprese le sottocartelle. Dovrebbe bastare


1

Per me, "rm -rf android / app / build /" ha funzionato

Esegui il tuo comando con "--verbose". Ho ricevuto l'errore che non poteva leggere un file (in android / app / build / generated / not_namespaced_r_class_sources /). Ho eliminato questa cartella e ha funzionato


0

La mia soluzione di lavoro è di seguito, nessuna delle precedenti ha funzionato per me:

CD nella cartella del progetto e digita expo start --android.

O la lunga strada:

  1. Apri AVD manager in Android Studio ed esegui un dispositivo virtuale (puoi chiudere AS in seguito)
  2. CMD nella cartella del progetto e digita "inizio esposizione"
  3. Una volta avviato Expo, scegli l'opzione 2 che è "Premi a per emulatore Android"

Installerà expo sul dispositivo virtuale e potrai testarlo da lì


0

Quando ho eseguito react-native eject, ho ricevuto questo errore:

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • Elimina la MyProject/androidcartella.
  • Esegui react-native ejectQuesto ha generato la androidcartella

  • Quindi corri react-native run-androidper creare Android




0

Potrebbe essere troppo tardi, ho sostituito la Androidcartella da un file di backup. Ha funzionato per me.


0

Ho risolto il problema uccidendo tutte le istanze di java.exe con: taskkill /f /im java.exe.


0

Ho avuto lo stesso errore in un progetto (creato con React Native CLI):

inserisci qui la descrizione dell'immagine

risulta che ho avuto un errore di sintassi nel mio file manifest di Android (android / app / src / main / AndroidManifest.xml).


0

Elimina reattivo Android nativo build foldere quindi riprova il comandonpx react-native run-android

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.