Giter Club home page Giter Club logo

expo-common-issues's Introduction

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

  • 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 ou expo 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 como null, pois em dispositivos Android ele se comportará melhor sem o behavior.
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 seja

    expo : 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:
  1. No Microsoft PowerShell digitar Get-ExecutionPolicy. Irá aparecer Restricted
  2. Em seguida, digitar Set-ExecutionPolicy Unrestricted, apertar enter e digitar S para aceitar a alteração da política de execução
  3. 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 comando set-executionpolicy bypass e executar o script do expo novamente. O comando get-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

expo-common-issues's People

Contributors

aaronmqs avatar adrianoapj avatar carloslevir avatar diego3g avatar fhugoduarte avatar jpedroschmitz avatar lukemorales avatar pmarcosfelipe avatar renancn avatar victorsalesdev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

expo-common-issues's Issues

exp: command not found - usuários windows

Deveria colocar essa opção de resolução do problema, juntamente com as outras dicas. Segue abaixo:
Para solucionar, vai na variáveis de ambiente, depois em variáveis do sistema e em Path incluir o caminho C:\Users\usuario\AppData\Roaming\npm.

Não carrega a imagem

Mesmo alterando o model com o ip da rede, não exibe a imagem nem no dispositivo fisico e nem no android emulado, porém quando abro no navegador a imagem aparece

Duvida

Estou com um problema, quando faço a requisição pelo mobile, ele aparece só a primeira requisição no appWeb, quando retorno para o APPMob, com o aceito ou rejeitado, se tento criar mais uma reserva, ele não aparece no meu AppWeb e não dá erro em nenhum app, alguém passou por isso?

Valeu

Can't load expo app: Something went wrong

Estava tendo esse problema ao ler o QR Code, resolvi inciando o expo com:

yarn start --tunnel

E no expo developer tools, selecionei o modo Tunnel, na opção connection.

Errro de navegação de telas quando app exportado.

Olá pessoal, fiz um app digamos que simples utilizando expo e vi o vídeo da Rocketseat fez sobre exportação, sendo que meu app tem três telas e no modo de Desenvolvedor ele rodou normalmente. Mas quando eu exportei e baixei no meu Celular (Android), ele não rodou as navegações, só ficou na tela home.

Meu Repositório é esse...clique aqui.

Eu não sei o que pode ser, já rodei na última, mudei de versão e nada.

Logo ou Texto aparecendo atrás das barra de status no Android

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"
},
}
}

Mesmo fazendo essas alterações a logo continua atrás do statusbar, não há nenhuma alteração na statusbar, nem da cor do texto,

o que está resolvendo por enquanto é um paddingTop no styles do container pra ser igual à StatusBar.currentHeight, mas sei que pode dar problema em dispositivos diferentes.

Não carrega a imagem

Olá gente, eu vim aqui perguntar uma coisa. Atualmente eu estou usando o GitHub no Vivaldi e as imagens não estão carregando, eu nao sei o porquê. Quando eu abri pelo microsoft edge as imagens carregaram sem problemas.

SecurityError: (:) [], PSSecurityException / UnauthorizedAccess (Windows)

npm\expo.ps1 is not digitally signed. You cannot run this script on the current
system. For more information about running scripts and setting execution policy, see about_Execution_Policies at
https:/go.microsoft.com/fwlink/?LinkID=135170

At line:1 char:1

  • expo whoami
  •   + CategoryInfo          : SecurityError: (:) [], PSSecurityException
      + FullyQualifiedErrorId : UnauthorizedAccess
    
    

Erro ocorre logo após tentar instalar o expo no windows com o comando npm install -g expo-cli, e na tentativa de executar o help "expo -h".
Erro de segurança.
Solução:
Limpar cache npm
*npm cache clean --force
Logo após limpar o cache setar exacução da Policy remota:
*Set-ExecutionPolicy RemoteSigned
Tente instalar novamente com o comando npm install -g expo-cli.
Execute novamente o comando expo -h para verificar a instalação.

incompatibilidade do expo com certas versões do node

Tive alguns problemas com o expo utilizando a versão 12.18 do node.
Os erros variavam de permissões negadas até erros misteriosos durante a instalação de dependencias com o expo install

Resolvi o problema depois que achei esse comentario em uma issue

Não cheguei a testar com outras versões, mas para mim funcionou com a versão 12.9 como dita pelo nosso colega na issue.

Seria legal incluir essa informação no repositorio pois demorei bastante tempo para encontrar a solução dele devido a falta de informações que os erros mostravam (durante a instalação só aparecia que o node tinha sido finalizado com codigo 243).

Erro para acessar a plataforma do Explorer

Já presenciei o msm erro só que em outro site que ainda está em desenvolvimento, nele chegamos a conclusão de que o que causou o erro foi o AdBlocker, mas aqui quando ocorreu o erro, desativei o AdBlocker e msm assim o erro persistiu. Aqui vai a imagem para que vcs desenvolvedores possam diagnosticar o erro e resolve-lo👇

Erro

Erro para montar tela de Incidents

Quando tento montar a tela de Incidents, não consigo completar a requisição get da API. Servidores estão ligados e funcionando normalmente. Vou colar a mensagem de erro do terminal e o screenshot do celular.

Erro do terminal rodando o expo:

`[Unhandled promise rejection: Error: Request failed with status code 404]
- node_modules/axios/lib/core/createError.js:15:17 in createError
- node_modules/axios/lib/core/settle.js:16:9 in settle
- node_modules/axios/lib/adapters/xhr.js:52:6 in handleLoad
- node_modules/event-target-shim/dist/event-target-shim.js:818:39 in EventTarget.prototype.dispatchEvent
- node_modules/react-native/Libraries/Network/XMLHttpRequest.js:566:23 in setReadyState
- node_modules/react-native/Libraries/Network/XMLHttpRequest.js:388:25 in didCompleteResponse
- node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js:190:12 in emit
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:436:47 in callFunction
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:111:26 in guard$argument_0
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:384:10 in guard
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:110:17 in __guard$argument_0
* [native code]:null in callFunctionReturnFlushedQueue`

Erro no emulador do iOS:

Arquivo api.js:

import axios from 'axios';

const api = axios.create({
    baseURL: 'http://192.168.15.27:3333'
});

export default api;

Arquivo Incidents/index.js

import React, { useState, useEffect } from 'react';
import { Feather } from '@expo/vector-icons';
import { useNavigation } from '@react-navigation/native';
import { View, Image, Text, TouchableOpacity, FlatList } from 'react-native';

// Importar a logo
import logoImg from '../../assets/logo.png';

// Importar styles
import styles from './styles';

// Importar a api
import api from '../../services/api';

export default function Incidents() {
    // Armazenar estado dos incidents
    const [incidents, setIncidents] = useState([]);
    // Armazenar estado do número total de incidentes, sendo 0 o padrão
    const [total, setTotal] = useState(0);
    // Armazenar estado do número da página, sendo 1 a padrão
    const [page, setPage] = useState(1);
    // Armazenar estado de loading, para armazenar informação de quando estivermos buscando dados, para não carregarmos mais de 1 página por vez.
    const [loading, setLoading] = useState(false);

    // semelhante ao useHistory, para lembrar da última tela navegada
    const navigation = useNavigation();

    function navigateToDetail(incident) {
        navigation.navigate('Detail', { incident });
    }

    async function loadIncidents () {
        // Se loading estiver como true, parar função. Para evitar que se uma requisição estiver sendo feita, outra requisição seja iniciada
        if (loading) {
            return;
        }

        // Se o total for maior que zero (ou seja, já foi carregada pelo menos a 1a pag) e o número de incidentes seja igual ao total, parar a função.
        if (total > 0  && incidents.length === total ) {
            return;
        }

        // Marcar como início do loading (true)
        setLoading(true);

        const response = await api.get('incidents>page=', {
            params: { page }
        });

        // Anexar os incidents já buscados aos que serão buscados na próxima requisição
        setIncidents([... incidents, ... response.data]);
        setTotal(response.headers['x-total-count']);
        // Aumentar o contador de páginas para a próxima requisição
        setPage(page += 1);
        // Marcar como fim do loading (false)
        setLoading(false);
    }

    useEffect(() => {
        loadIncidents();
    }, []);

    return (
        <View style={styles.container}>
            <View style={styles.header}>
                <Image source={logoImg} />
                <Text style={styles.headerText}>
                    Total de <Text style={styles.headerTextBold}>{total} casos</Text>.
                </Text>
            </View>

            <Text style={styles.title}>Bem-vindo!</Text>
            <Text style={styles.description}>Escolha um dos casos abaixo e salve o dia.</Text>

            {/* FlatList é usado para conseguir fazer a rolagem dos itens de uma lista */}
            <FlatList 
                data ={incidents}
                style={styles.incidentList}
                keyExtractor={incident => String(incident.id)}
                // Tirar o símbolo de scroll da tela
                // showsVerticalScrollIndicator={false}
                // Propriedade que aceita uma função que é disparada de forma automática quando um usuário chega ao final de uma lista
                onEndReached={loadIncidents}
                // Propriedade que define o quantos % do final da lista o usuário precisa estar para que carregue novos itens, definido de 0 a 1.
                onEndReachedThreshold={0.2}
                renderItem={({ item: incident }) => (
                    <View style={styles.incident}>
                        <Text style={styles.incidentProperty}>ONG:</Text>
                        <Text style={styles.incidentValue}>{incident.name}</Text>
                        
                        <Text style={styles.incidentProperty}>CASO:</Text>
                <Text style={styles.incidentValue}>{incident.title}</Text>
                        
                        <Text style={styles.incidentProperty}>VALOR:</Text>
                        <Text style={styles.incidentValue}>
                            {Intl.NumberFormat('pt-BR', {
                                style: 'currency',
                                currency: 'BRL'
                            }).format(incident.value)}
                        </Text>
                    
                        <TouchableOpacity
                            style={styles.detailsButton}
                            onPress={() => navigateToDetail(incident)}
                        >
                            <Text style={styles.detailsButtonText}>Ver mais detalhes</Text>
                            <Feather name="arrow-right" size={16} color='#e02041'  />
                        </TouchableOpacity>
                    </View>
                )}
            />
        </View>
    );
}

Adicionar expo build error

  • Erro:
    • Building iOS bundle
    • Error connect ECONREFUSED 127.0.0.1:19001
  • Solução:
    • Deletar a pasta ~/.expo

Adaptador de Rede

Pode acontecer também de ao iniciar o yarn start (expo) o mesmo pegar o endereço de IP de um outro adaptador, exemplo: um adaptador do virtual box fazendo com que seja inciado em uma faixa de IP que não ficará accessível pelo celular físico.

A solução que achei mais fácil foi somente desativar enquanto programava/estudava o adaptador em questão.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.