Rocketseat / Expo Common Issues
Labels
Projects that are alternatives of or similar to Expo Common Issues
Expo common issues
Esse repositório contém uma série de erros (e suas soluções) que você pode ter com o Expo.
Issues
- Expo command not found
- Invalid Regular Expression
- Input is required, but Expo CLI is in non-interactive mode.
- Network response timed out
- The internet connection appears to be offline.
- Imagens não aparecendo no dispositivo físico
- Logo ou Texto aparecendo atrás das barra de status no Android
- ENOSPC: System limit for number of file watchers reached
- KeyboardAvoidingView não funciona no Android
- UnauthorizedAccess on run Expo command on Microsoft PowerShell
- O arquivo não pode ser carregado
Expo command not found
-
Verifique se você instalou o
expo-cli
e se foi configurado corretamente no seu$PATH
. -
Para mais informações sobre como instalar o
expo-cli
verifique a documentação.
Invalid Regular Expression
-
Esse erro ocorre principalmente no Windows por conta de pastas que possuem espaços, pontos, acentos ou outros caracteres inválidos (ex: "Semana Omnistack" ou "C:\Users\João Pedro"). Para evitar esse erro, recomendamos que crie seu projeto na raíz do seu drive, por exemplo: "C:\SemanaOmnistack".
-
Esse erro também pode ser encontrado caso você esteja utilizando a versão 12+ do NodeJs, nesse caso, basta fazer o downgrade para a versão 10.
Input is required, but Expo CLI is in non-interactive mode.
- Alguns terminais (git bash, por exemplo) podem bloquear a interatividade das CLIs. Inicie seu projeto com o comando:
expo init mobile --template blank
Network response timed out
- Verifique se seu computador e seu celular estão na mesma rede;
- Configurações de firewall podem influenciar:
- Mude a configuração da sua rede de WiFi de "Pública" para "Privada" e inicie seu projeto do expo novamente;
- Rode o comando
yarn start
ouexpo start
através do terminal do seu computador ao invés de usar o terminal embutido do VSCode;
- VMWare ou VirtualBox ou Docker podem influenciar na hora do Expo criar um endereço IP, se estiver com algum destes serviços rodando, altere a conexão de LAN para Tunnel;
- Altere a conexão de LAN pra Tunnel;
The internet connection appears to be offline.
- Verifique método pelo qual você está tentando acessar aplicação. Caso opte pelo método LAN, verifique se o IP é no formato 192.x.x.x, se não, troque para esse formato e tente acessar a aplicação novamente. Exemplo:
exp://192.168.0.5:19000
. Se o erro persistir, opte pela conexão do tipo Tunnel lá na pagina do Expo e utilize a URL/QR Code disponibilizado.
Imagens não aparecendo no dispositivo físico
- Altere o seguinte campo no seu Model de Spot para mostrar seu IP ao invés de localhost:
SpotSchema.virtual('thumbnail_url').get(function() {
return `http://IP_DA_SUA_REDE:3333/files/${this.thumbnail}`;
});
Logo ou Texto aparecendo atrás das barra de status no Android
- O Expo muda a cor da barra de status do Android para transparente por padrão, e isso faz com que o comportamento dos elementos funcione igual no iOS, porém a SafeAreaView não funciona no Android. A forma mais rápida de resolver isso é adicionando as seguintes linhas no seu arquivo
app.json
:
{
"expo": {
...
//adicione as linhas abaixo
"androidStatusBar": {
"barStyle": "dark-content",
"backgroundColor": "#ffffff"
},
}
}
- Após este processo, pare o processo do Metro Bundler do Expo apertando Ctrl + C no terminal que está rodando, e inicie novamente.
ENOSPC: System limit for number of file watchers reached
- Em dispositivos Linux, o sistema pode ter uma certa limitação para o uso do live reload, o que ocasiona esse erro quando o diretório de algum projeto com a função ativada possui muitos arquivos. Execute o comando
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc sysctl.conf && sudo sysctl -p
em seu terminal e o problema será resolvido.
KeyboardAvoidingView não funciona no Android
- Caso o componente KeyboardAvoidingView não tenha o comportamento esperado no Android, ajustar o layout quando o teclado é exibido. Você pode tentar passar o parâmetro
behavior
comonull
, pois em dispositivos Android ele se comportará melhor sem obehavior
.
import { KeyboardAvoidingView, Platform } from 'react-native';
<KeyboardAvoidingView behavior={Platform.OS === 'ios' ? 'padding' : null}>
... outros componentes ...
</KeyboardAvoidingView>;
UnauthorizedAccess on run Expo command on Microsoft PowerShell
- Caso esteja tentando executar
expo -h
através do Microsoft PowerShell e a mensagem de erro apresentada sejaexpo : O arquivo C:\USUARIO\AppData\Roaming\npm\expo.ps1 não pode ser carregado porque a execução de scripts foi desabilitada neste sistema. Para obter mais informações, consulte about_Execution_Policies em https://go.microsoft.com/fwlink/?LinkID=135170. No linha:1 caractere:1
+
expo -h
>+ ~~~~
>+
CategoryInfo : ErrodeSegurança: (:) [], PSSecurityException
>+
FullyQualifiedErrorId : UnauthorizedAccess
- Seguir os seguintes passos:
- No Microsoft PowerShell digitar
Get-ExecutionPolicy
. Irá aparecer Restricted - Em seguida, digitar
Set-ExecutionPolicy Unrestricted
, apertar enter e digitar S para aceitar a alteração da política de execução - Após feitos os passos anteriores, se digitar
Get-ExecutionPolicy
novamente, o terminal deverá mostrar Unrestricted
- Feito os passos anteriores, seu PowerShell estará habilitado para executar comandos Expo.
O arquivo não pode ser carregado
-
Ao executar o script
expo -h
, o Porwershell pode restringir sua execução. Para resolver o problema, basta remover a restrição com o comandoset-executionpolicy bypass
e executar o script do expo novamente. O comandoget-executionpolicy
pode ser utilizado para saber qual o nível de restrição está sendo utilizado. -
Para mais informações sobre as restrições, acesse a documentação da microsoft