React native: proyecto de Android no encontrado. ¿Quizás ejecutar primero Android react-native?

89

Tuve un problema en mi proyecto React-Native que funcionaba bien antes, pero de repente dejó de funcionar. Siempre que usé el comando:

react-native run-android

Estaba recibiendo un error :

No se encontró el proyecto de Android. ¿Quizás ejecutar primero Android react-native?

Yo probé ejecutando:

react-native android

Pero dijo:

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

Después de intentar:

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

El error devuelto fue:

El escaneo de carpetas para enlaces simbólicos en D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) La aplicación namedebe estar definida en el app.jsonarchivo de configuración para definir el nombre del proyecto. No debe contener espacios ni guiones.

Este es el archivo 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
fuente
1
Si falta la carpeta de Android en la directiva raíz, ejecute react-native eject.
Khurshid Ansari
1
@Khurshid Ansari su solución no funcionó, ya que viene el error: "El nombre de la aplicación debe definirse en el archivo de configuración app.json para definir el nombre del proyecto" incluso cuando el nombre está definido. Consulte la pregunta actualizada.
Abhinav Saxena

Respuestas:

155

Planteé esta pregunta y me respondí a mí mismo, ya que pensé que ayudaría a otros que enfrentan problemas similares. Luché mucho para descubrir la verdadera razón detrás de esto, ya que el error que se muestra en la terminal no era preciso.

Para resolver el problema, actualice el paquete react-native.

  1. Vaya a la raíz del proyecto .

  2. Actualice el paquete nativo de React en el símbolo del sistema escribiendo:

    react-native upgrade.

  3. Luego, acepte actualizar todos los archivos escribiendo y (Yes)en el símbolo del sistema .

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

udai
fuente
9
Salvó el día :)
Muhammad
¿Dónde se encuentra el paquete nativo de React? por favor dé pasos claros
Lutaaya Huzaifah Idris
@LutaayaHuzaifahIdris Como se mencionó en la respuesta, el paquete nativo react se puede actualizar en la raíz del proyecto. Entonces, abra el símbolo del sistema y vaya a la raíz del proyecto. Luego actualice el paquete react native.
udai
se actualizó react-native que no quería.
Khurshid Ansari
Mi solución de trabajo está a continuación, ninguna de las anteriores funcionó para mí: 1. Abra el administrador AVD en Android Studio y ejecute un dispositivo virtual (puede cerrar AS después) 2. CMD en la carpeta de su proyecto y escriba 'expo start' 3. Una vez que la Expo haya comenzado, elija la opción 2, que es "Presione a para emulador de Android". Se instalará la exposición en el dispositivo virtual y podrá probar desde allí
Paul Gwamanda
23

Sé que es una pregunta antigua, pero ninguna de esas soluciones me funcionó y tal vez haya otras como yo. Resolví mi problema ejecutando este comando antesrun-android

react-native eject
José Abimael Martínez
fuente
1
por alguna razón, esto también funcionó para mí, probé la versión más nueva de react native upgrade usando "react-native-git-upgrade" como se sugirió cuando ejecuta "react-native upgrade", no funcionó para mí.
Zaid Qureshi
2
este comando vuelve a crear la carpeta de Android y iOS en su proyecto
Khurshid Ansari
1
Creo que esta es la respuesta adecuada. No solo porque funcionó para mí, sino porque, según mi comprensión de los documentos, esta es la forma prevista de hacerlo y, por lo tanto, sin otros efectos secundarios.
Daan
8
El ejectcomando se ha eliminado de react-native.
Phantom Watson
17

Abra el directorio raíz de su proyecto React Native y ubique android -> aplicación -> compilación -> intermedios -> signing_config -> debug -> out -> signing-config.json. eliminar signing-config.json este archivo inténtelo de nuevo

O

1) A veces, si tenemos una versión anterior de react native y algunos de los paquetes recién instalados, no son compatibles con la versión anterior. Luego, debe actualizar el proyecto react native usando el comando de actualización react-native.

  1. Después de terminar de actualizar el proyecto actual a la nueva versión, este error debería resolverse.
Sahil Kalaigar
fuente
9

Asegúrese de iniciar el proyecto usando el comando (no expo):

react-native init <your-project-name>

Si es una carpeta existente, siga:

expulsar react-native


En la última versión de react-native, esta sugerencia viene cuando intenta ejecutar el comando:

react-native eject

El escaneo de carpetas para enlaces simbólicos en D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) La aplicación namedebe estar definida en el app.jsonarchivo de configuración para definir el nombre del proyecto. No debe contener espacios ni guiones.

Ahora, cuando emite el siguiente comando:

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

Aparece lo siguiente:

Escaneo de carpetas en busca de enlaces simbólicos en D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (56ms) Debería considerar usar la nueva herramienta de actualización basada en Git. Facilita las actualizaciones al resolver la mayoría de los conflictos automáticamente. Para usarlo: - Vuelva a la versión anterior de React Native - Ejecute "npm install -g react-native-git-upgrade" - Ejecute "react-native-git-upgrade" Consulte https://facebook.github.io /react-native/docs/upgrading.html La versión de react-native en "package.json" no coincide con la versión instalada en "node_modules". Intente ejecutar "npm install" para solucionar este problema. Abortar.

En las sugerencias de comandos nativos de reacción de Facebook, hay una solución clara.

Estos comandos verifican la versión actual y si se necesita una actualización o no.

Una solución más:

react-native: Comando run-androidno reconocido. Quizás causado por la instalación de npm

Consulte también:

Solución a "Expo: no se puede encontrar un módulo LogReporter"

Abhinav Saxena
fuente
Respuesta aceptada para mí, +10 rep. a @Abhinav
Saeed
8

Me gustó esto ... ¡Funcionó!

  1. En la raíz del proyecto CMD, ejecute la actualización nativa de reacción .
  2. Si aún tiene problemas, asegúrese de tener react-native en las dependencias json en package.json , agréguelo si no
  3. Si aún tiene problemas, obtenga la versión de react native en cmd usando react-native -v y verifique si el valor devuelto en cmd y package.json es el mismo. actualice el package.json con el valor devuelto en cmd

Aquí mi problema resuelto.

m9m9m
fuente
5

Abra el símbolo del sistema como administrador y vaya a la carpeta del proyecto, ejecute android (npx react-native run-android)

karthik mano
fuente
3

Tuvimos este problema porque los archivos de la carpeta de Android gradlew y gradlew.bat (secuencia de comandos de inicio de Gradle para UN * X, Windows respectivamente) ingresaron de alguna manera al archivo .gitignore global y, por lo tanto, no se presentaron en entornos locales.

En realidad, al ejecutar el comando de actualización react-native, se restauran esos archivos, solucionando así el problema.

Ilya Zatolokin
fuente
3

Como complemento, en el caso de que no se encuentre el comando react-native, debe instalar la CLI react-native:

npm install -g react-native-cli

Entonces puedes seguir los pasos que la gente dijo anteriormente.

Más detalles: react-native: comando no encontrado

Filipe
fuente
2

Si comenzó su proyecto siguiendo

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

después de esto, puede enfrentar el problema mencionado anteriormente en la pregunta Entonces, la solución es:

npm run eject
Abhishek Yadav
fuente
2

Hoy me enfrenté a este problema y ninguna de las soluciones me funcionó, así que encontré otra.

AndroidManifest.xml mal formateado causará este problema , tal vez configuró la pantalla de inicio como yo hoy, y no formateó AndroidManifest de la manera correcta

Ben Hur Martins
fuente
1

Aquí, app.json no tiene nombre, pero tiene una configuración relacionada con expo. Así que solo agregue los campos de nombre y nombre para mostrar en app.json.

app.json (primeras dos líneas):

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

Después de esto, simplemente ejecute:

$ react-native eject

info Generando la carpeta iOS.

info Generando la carpeta de Android.

No es necesario realizar una actualización nativa de reacción.

hp2017
fuente
de hecho, "expo eject" también funciona mejor. Me dio opciones y actualizó app.json y creó directorios android / ios.
hp2017
1

Elimine el archivo: React Native Project Root Directory y ubique android -> app -> build -> intermedios -> signing_config -> debug -> out -> signing-config.json.

NewPHPer
fuente
1

Ejecutar Terminal como Administrador en Windows me ayudó ... Otras soluciones no funcionaron.

AleksandarT
fuente
Esto solo es un agradecimiento a la respuesta existente de karthik mano, ¿no es así? De lo contrario, haga más obvio qué información adicional proporciona esta respuesta.
Yunnosch
1

Estoy usando Android Studio (no expo) y esto me funciona

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

Tienes que ejecutar tu cmd con privilegios de administrador. Eso me resolvió el mismo problema. No hizo "expulsar" ni nada más.

hino
fuente
Hay muchas respuestas similares disponibles para la misma pregunta. En lugar de agregar tu respuesta, puedes simplemente votar a favor de la respuesta existente si te ayuda.
Deepak Terse
1

Abra su directorio raíz del proyecto React Native y ubique android -> aplicación -> compilación -> intermedios -> signing_config -> debug -> out -> signing-config.json

Elimina el archivo y vuelve a intentarlo.

Guilherme Andrade
fuente
1

Para mí, "rm -rf android / app / build /" funcionó

Arnaud Fouchet
fuente
0

Mi solución de trabajo está a continuación, nada de lo anterior funcionó para mí:

CD en la carpeta de su proyecto y escriba expo start --android.

O el camino más largo:

  1. Abra AVD Manager en Android Studio y ejecute un dispositivo virtual (puede cerrar AS después)
  2. CMD en la carpeta de su proyecto y escriba 'expo start'
  3. Una vez que la Expo haya comenzado, elija la opción 2, que es "Presione a para emulador de Android"

Instalará expo en el dispositivo virtual y podrás probar desde allí

Paul Gwamanda
fuente
0

Cuando corrí react-native eject, recibí este error:

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • Elimina la MyProject/androidcarpeta.
  • Ejecutar react-native ejectesto generó la androidcarpeta

  • Luego corre react-native run-androidpara construir Android

a_rahmanshah
fuente
0

Debería considerar usar la nueva herramienta de actualización basada en Git. Facilita las actualizaciones al resolver la mayoría de los conflictos automáticamente. Para usarlo: - Vuelva a la versión anterior de React Native - Ejecute "npm install -g react-native-git-upgrade" - Ejecute "react-native-git-upgrade" Consulte https://facebook.github.io /react-native/docs/upgrading.html

bebe
fuente
0

Si ha creado su proyecto con el expocomando, como expo init projectname, luego debe expulsar su proyecto:

expo eject

Si ha creado su proyecto antes react-native init projectName, debe usar

react-native eject
Deepika kumari
fuente
El comando de expulsión se ha eliminado de react-native github.com/react-native-community/cli/pull/275
Michimcchicken
0

Puede que sea demasiado tarde, reemplacé la Androidcarpeta de un archivo de respaldo. Funcionó para mí.

Dinesh Kumar
fuente
0

He resuelto el problema matando a todas las instancias de java.exe con: taskkill /f /im java.exe.

Kartik Soneji
fuente
0

Tuve el mismo error en un proyecto (creado con React Native CLI):

ingrese la descripción de la imagen aquí

resulta que tuve un error de sintaxis en mi archivo de manifiesto de Android (android / app / src / main / AndroidManifest.xml).

Amin Dannak
fuente
0

En mi caso, me olvidé de agregar Sudo. Fijado de la siguiente manera,

sudo npx react-native run-android
Praneeth Pj
fuente
0

Eliminar signing-config.json, luego vuelva a intentarlo react-native run-android

Ruta del archivo signing-config.json: android -> aplicación -> compilación -> intermedios -> signing_config -> debug -> out -> signing-config.json

أحمد رحماني
fuente
0

Creo que una cosa más simple que podría haber verificado es si anteriormente ejecutó el proyecto como un rol diferente de un usuario, como en Windows si ejecutó previamente el react-native run-android con un rol de administrador.

Ajeet Singh
fuente
0

Eliminar react native android build foldery luego reintentar el comandonpx react-native run-android

Thirasha
fuente
0

En mi caso, no tenía los permisos adecuados para la carpeta de mi proyecto.

Si este es su caso, simplemente haga clic con el botón derecho en la carpeta> Propiedades> Seguridad> Avanzado y luego cambie la propiedad de la carpeta a su usuario, incluidas las subcarpetas. Deberias hacer eso

Yan Jardim
fuente