React nativo: projeto Android não encontrado. Talvez execute o android react-native primeiro?

90

Tive um problema em meu projeto React-Native que estava funcionando bem antes, mas de repente parou de funcionar. Sempre que usei o comando:

react-native run-android

Estava recebendo um erro :

Projeto Android não encontrado. Talvez execute o android react-native primeiro?

Eu tentei correr:

react-native android

Mas disse:

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

Depois de tentar:

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

O erro retornado foi:

Verificando pastas para links simbólicos em D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) O aplicativo namedeve ser definido no app.jsonarquivo de configuração para definir o nome do projeto. Não deve conter espaços ou travessões.

Este é o arquivo 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
fonte
1
se a pasta android estiver faltando na diretiva root, execute a ejeção react-native.
Khurshid Ansari
1
@Khurshid Ansari sua solução não funcionou, pois o erro está chegando: "O nome do aplicativo deve ser definido no arquivo de configuração app.json para definir o nome do projeto" mesmo quando o nome é definido. Por favor, veja a pergunta atualizada.
Abhinav Saxena,

Respostas:

156

Eu levantei essa questão e respondi a mim mesma, pois achei que isso ajudaria outras pessoas que estão enfrentando problemas semelhantes. Lutei muito para descobrir o verdadeiro motivo por trás disso, pois o erro mostrado no terminal não era preciso.

Para resolver o problema, atualize o pacote react-native.

  1. Vá para a raiz do projeto .

  2. Atualize o pacote nativo React no prompt de comando digitando:

    react-native upgrade.

  3. Em seguida, aceite a atualização de todos os arquivos digitando y (Yes)no prompt de comando .

Referência: https://github.com/facebook/react-native/issues/9312

udai
fonte
9
Salvou o dia :)
Muhammad
onde o pacote nativo React é encontrado? por favor, deixe os passos claros
Lutaaya Huzaifah Idris
@LutaayaHuzaifahIdris Conforme mencionado na resposta, o pacote nativo react pode ser atualizado na raiz do Projeto. Portanto, abra o prompt de comando e vá para a raiz do projeto. Em seguida, atualize o pacote nativo react.
udai
é atualizado com o react-native que eu não queria.
Khurshid Ansari de
Minha solução de trabalho está abaixo, nenhuma das opções acima funcionou para mim: 1. Abra o gerenciador AVD no Android Studio e execute um dispositivo virtual (você pode fechar o AS depois) 2. CMD na pasta do seu projeto e digite 'expo start' 3. Assim que a Expo começar, escolha a opção 2 que é "Pressione a para emulador de Android". Ela instalará o expo no dispositivo virtual e você poderá testar a partir daí
Paul Gwamanda
25

Abra seu React Native Project Root Directory e localize android -> app -> build -> intermediários -> signature_config -> debug -> out -> signature-config.json. exclua a assinatura-config.json este arquivo, tente novamente

Ou

1) Às vezes, se temos uma versão mais antiga do react native e alguns dos pacotes recém-instalados não suportam a versão anterior. Em seguida, você deve atualizar o projeto react native usando o comando react-native upgrade.

  1. Depois de atualizar o projeto atual para a nova versão, esse erro deve ser resolvido.
Sahil Kalaigar
fonte
23

Eu sei que é uma questão antiga, mas nenhuma dessas soluções funcionou para mim e talvez haja outras como eu. Resolvi meu problema executando este comando antesrun-android

react-native eject
José Abimael Martínez
fonte
1
por alguma razão isso funcionou para mim também, eu tentei a versão mais recente da atualização do react nativo usando "react-native-git-upgrade" como sugerido quando você executou "react-native upgrade" não funcionou para mim.
Zaid Qureshi,
2
este comando cria novamente a pasta android e ios em seu projeto
Khurshid Ansari
1
Acho que essa é a resposta adequada. Não apenas porque funcionou para mim, mas porque, pelo meu entendimento dos documentos, essa é a maneira pretendida de fazer isso e, portanto, sem outros efeitos colaterais.
Daan,
10
O ejectcomando foi removido de react-native.
Phantom Watson de
9

Certifique-se de iniciar o projeto usando o comando (não expo):

react-native init <your-project-name>

Se houver pasta, siga:

ejeção reativa-nativa


Na versão mais recente do react-native, esta sugestão surge quando você tenta emitir o comando:

react-native eject

Verificando pastas para links simbólicos em D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) O aplicativo namedeve ser definido no app.jsonarquivo de configuração para definir o nome do projeto. Não deve conter espaços ou travessões.

Agora, quando você emitir o seguinte comando:

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

O seguinte aparece:

Verificando pastas em busca de links simbólicos em D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (56ms) Você deve considerar o uso da nova ferramenta de atualização baseada no Git. Facilita as atualizações ao resolver a maioria dos conflitos automaticamente. Para usá-lo: - Volte para a versão antiga do React Native - Execute "npm install -g react-native-git-upgrade" - Execute "react-native-git-upgrade" Veja https://facebook.github.io /react-native/docs/upgrading.html versão react -native em "package.json" não corresponde à versão instalada em "node_modules". Tente executar "npm install" para corrigir isso. Abortando.

Nas sugestões de comandos do reagente nativo do Facebook, há uma solução clara.

Esses comandos verificam a versão atual e se há necessidade de atualização ou não.

Mais uma solução:

react-native: Comando run-androidnão reconhecido. Talvez causado por instalação npm

Veja também:

Solução para "Expo: não é possível encontrar um módulo LogReporter"

Abhinav Saxena
fonte
Resposta aceita para mim, +10 rep. para @Abhinav
Saeed
8

Eu gostei disso ... Funcionou !!

  1. Na raiz do projeto CMD, execute a atualização reativa nativa .
  2. se você ainda está tendo problemas, certifique-se de ter react-native nas dependências json em package.json , adicione-o se não
  3. se você ainda estiver tendo problemas, obtenha a versão do react native em cmd usando react-native -v e verifique se os valores retornados em cmd e package.json são os mesmos. atualize o package.json com o valor retornado em cmd

Aqui meu problema resolvido.

m9m9m
fonte
6

Abra o Prompt de Comando como Administrador e vá para a pasta do projeto, execute android (npx react-native run-android)

Karthik Mano
fonte
4

Remova o arquivo: React Native Project Root Directory e localize android -> app -> build -> intermediates -> signs_config -> debug -> out -> signature-config.json.

NewPHPer
fonte
4

Tive que remodelar meu AndroidManifest.xml porque havia um erro de sintaxe em algum lugar (tinha um "/" extra em algum lugar). Agora está consertado. Tenha muito cuidado com sua sintaxe ...

Bobo Chen
fonte
Como isso é uma resposta?
theWellHopeErr
3

Tivemos esse problema porque os arquivos da pasta android gradlew e gradlew.bat (script de inicialização do Gradle para UN * X, Windows respectivamente) de alguma forma entraram no arquivo .gitignore global e, portanto, não foram apresentados em ambientes locais.

Na verdade, a execução do comando react-native upgrade restaura esses arquivos, corrigindo assim o problema.

Ilya Zatolokin
fonte
3

Como complemento, caso o comando react-native não seja encontrado, você deve instalar a CLI react-native:

npm install -g react-native-cli

Então você pode seguir os passos que as pessoas disseram acima.

Mais detalhes: react-native: comando não encontrado

Filipe
fonte
3

Abra seu React Native Project Root Directory e localize android -> app -> build -> intermediates -> signs_config -> debug -> out -> signature-config.json

Exclua o arquivo e tente novamente.

Guilherme Andrade
fonte
2

Se você começou seu projeto seguindo

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

depois disso, você pode enfrentar o problema mencionado acima em questão. Portanto, a solução é:

npm run eject
Abhishek Yadav
fonte
2

Eu enfrentei esse problema hoje e nenhuma das soluções funcionou para mim, então encontrei outra.

O AndroidManifest.xml mal formatado causará esse problema , talvez você tenha definido a tela inicial como eu hoje e não formatou o AndroidManifest da maneira correta

Ben Hur Martins
fonte
1

Aqui, app.json não tem nome, mas tem configuração relacionada à expo. Portanto, basta adicionar os campos de nome e nome de exibição em app.json.

app.json (primeiras duas linhas):

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

Depois disso, basta executar:

ejeção nativa de $ react

info Gerando a pasta iOS.

info Gerando a pasta Android.

Não há necessidade de fazer upgrade de reagente nativo.

hp2017
fonte
na verdade, "expo eject" também funciona melhor. Deu-me opções e atualizou app.json e criou diretórios android / ios.
hp2017
1

Executar o Terminal como administrador no Windows resolveu o problema para mim ... Outras soluções não funcionaram.

AleksandarT
fonte
Isso é apenas agradecimento à resposta existente de karthik mano, não é? Caso contrário, torne mais óbvio quais informações adicionais essa resposta oferece.
Yunnosch
1

Estou usando o Android Studio (não expo) e isso funciona para mim

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

Você deve executar seu cmd com privilégios de administrador. Isso resolveu o mesmo problema para mim. Não fez "ejetar" ou qualquer outra coisa.

hino
fonte
Existem muitas respostas semelhantes disponíveis para a mesma pergunta. Em vez de adicionar sua resposta, você poderia apenas votar positivamente na resposta existente se isso o ajudasse.
Deepak Terse
1

No meu caso, esqueci de adicionar Sudo. Corrigido da seguinte forma,

sudo npx react-native run-android
Praneeth Pj
fonte
1

Exclua a assinatura-config.json na próxima tentativa novamente react -native run-android

Arquivo de assinatura-config.json Caminho: android -> aplicativo -> construção -> intermediários -> autenticação_config -> depuração -> saída -> assinatura-config.json

أحمد رحماني
fonte
1

Acho que mais uma coisa simples que você poderia ter verificado, é se anteriormente você executou o projeto como função diferente de um usuário, como no Windows se você executou anteriormente o run-android reac-nativo com uma função de administrador.

Ajeet Singh
fonte
Eu tive um problema semelhante à pergunta acima e ao iniciar o terminal com permissões de administrador (no Windows), esse erro foi embora.
LakeRunner
1

No meu caso, não tinha as permissões certas para a pasta do meu projeto.

Se este for o seu caso, basta clicar com o botão direito na pasta> Propriedades> Segurança> Avançado e, em seguida, alterar a propriedade da pasta para o seu usuário, incluindo as subpastas. Isso deve resolver

Yan Jardim
fonte
1

Para mim, "rm -rf android / app / build /" funcionou

Execute seu comando com "--verbose". Recebi o erro de que não foi possível ler um arquivo (em android / app / build / generated / not_namespaced_r_class_sources /). Eu apaguei esta pasta e funcionou

Arnaud Fouchet
fonte
0

Minha solução de trabalho está abaixo, nenhuma das opções acima funcionou para mim:

CD na pasta do projeto e digite expo start --android.

Ou o caminho mais longo:

  1. Abra o gerenciador AVD no Android Studio e execute um dispositivo virtual (você pode fechar o AS depois)
  2. CMD na pasta do seu projeto e digite 'expo start'
  3. Assim que a Expo começar, escolha a opção 2 que é "Pressione a para emulador Android"

Irá instalar o Expo no dispositivo virtual e você pode testar a partir daí

Paul Gwamanda
fonte
0

Quando corri react-native eject, recebi este erro:

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • Exclua a MyProject/androidpasta.
  • Executar react-native ejectIsto gerou a androidpasta

  • Em seguida, execute react-native run-androidpara construir o Android

a_rahmanshah
fonte
0

Você deve considerar o uso da nova ferramenta de atualização baseada no Git. Facilita as atualizações ao resolver a maioria dos conflitos automaticamente. Para usá-lo: - Volte para a versão antiga do React Native - Execute "npm install -g react-native-git-upgrade" - Execute "react-native-git-upgrade" Veja https://facebook.github.io /react-native/docs/upgrading.html

bebê inoxidável
fonte
0

Se você criou seu projeto com o expocomando, como expo init projectname, então depois você deve ejetar seu projeto:

expo eject

Se você já criou seu projeto, react-native init projectNameentão deve usar

react-native eject
Deepika kumari
fonte
O comando de ejeção foi removido de react
Michimcchicken
0

Pode ser tarde demais, substituí a Androidpasta de um arquivo de backup. Funcionou para mim

Dinesh Kumar
fonte
0

Eu resolvi o problema, matando todas as instâncias do java.exe com: taskkill /f /im java.exe.

Kartik Soneji
fonte
0

Eu tive o mesmo erro em um projeto (criado com React Native CLI):

insira a descrição da imagem aqui

Acontece que eu tive um erro de sintaxe em meu arquivo de manifesto do Android (android / app / src / main / AndroidManifest.xml).

Amin Dannak
fonte
0

Exclua o react native android build foldere tente novamente o comandonpx react-native run-android

Thirasha
fonte