rocketseat-docs-rn

Android / iOS

Capa

Lista de erros comuns enfrentados em Android e iOS.

The development server returned response error code: 500

Geralmente esse erro acontece quando você tenta importar um arquivo JS que não possui export default ou não possui nenhum componente dentro dele.

Primeiramente cheque todos arquivos e importações recentes que você fez para garantir que todos possuem import/exports e seus devidos componentes.

Caso isso não resolva, feche a janela do terminal Metro Bundler que abre automaticamente com o run-ios/run-android e na pasta do seu projeto execute:

npx react-native start --reset-cache
# Ou yarn run react-native start --reset-cache
# Ou yarn start --reset-cache

Esse comando irá limpar o cache do React Native provavelmente resolvendo o erro.

internal/modules/cjs/loader.js ... throw error cannot find module ...

Caso você receba um erro desse tipo, verifique se o caminho do seu projeto é um caminho válido. Ele não é um caminho válido se possuir espaço ou caracteres especiais. Exemplos:

C:\Pasta com espaco\projeto ## caminho inválido
C:\PastaInválida\projeto ## caminho inválido
C:\www\rocketseat\gostack\mobile\projeto ## caminho válido

Error: Network Error

Esse é um erro comum ao utilizar requisições http, normalmente com o axios. Verifique algumas coisas:

1 - Verifique se você instanciou corretamente o seu axios, principalmente se você escreveu baseURL e não baseUrl. Segue um exemplo:

import axios from 'axios';
const api = axios.create({
baseURL: 'http://IP_DO_ENDPOINT:PORTA',
});
export default api;

2 - Para poder usar o localhost em vez do ip no android, é preciso executar o seguinte comando:

adb reverse tcp:XXXX tcp:XXXX

onde o XXXX representa o número da porta que você deseja permitir a comunicação entre o dispositivo e a sua máquina (ex.: 3333 caso a porta do seu servidor seja 3333)

3 - Caso queira utilizar o ip, dê uma olhada nesses casos:

  • Dispositivo físico: utilize o ip local da sua máquina (normalmente inicia em 192.168);
  • Emulador Android Studio: utilize o ip 10.0.2.2;
  • Emulador Genymotion: utilize o ip 10.0.3.2.

4 - Verifique se você está informando o caminho correto nas suas chamadas http;

5 - Verifique se o seu backend ou endpoint está rodando e recebendo requisições normalmente.

Error "code":"ENOSPC","errno":"ENOSPC"

Esse erro é causado pela quantidade de diretórios que o inotify consegue monitorar. Para resolver isso, execute o seguinte comando:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

npm WARN locking Error: EACCES

Caso você se depare com esse erro de permissão, faça o seguinte

  • Windows: abra o Powershell como admin e tente rodar o comando novamente.
  • Linux/Mac OS: execute os comandos abaixo:
sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/local/lib/node_modules

Error: listen EADDRINUSE :::8081

Quando esse erro acontecer, significa que a porta 8081 já está sendo utilizada. Provavelmente já existe algum terminal rodando o Metro Bundler do seu projeto, basta encerrá-lo e tentar novamente. Porém, caso não encontre esse processo rodando, você pode encerrá-lo manualmente com o seguinte comando:

## Para Windows
taskkill /f /im node.exe
## Para Linux/Mac OS
pkill node

npm ERR! code ELIFECYCLE

Para resolver esse erro, execute:

1 - Delete a pasta node_modules e o arquivo package-lock.json

2 - Execute os comandos

npm cache clean --Force
npm install

E tente executar o projeto novamente.

Edit this page on GitHub