entregas_app/docs/CORRECAO_CRASH_ROUTES_SCREE...

2.6 KiB

Correção do Crash no RoutesScreen

Problema Identificado

O aplicativo estava crashando ao abrir a tela RoutesScreen.tsx no APK de produção. O problema estava relacionado a:

  1. Configuração incorreta do react-native-maps
  2. Uso de PROVIDER_GOOGLE sem configuração adequada
  3. Funcionalidades complexas de roteamento causando instabilidade

Soluções Implementadas

1. Remoção do Plugin react-native-maps do app.json

// REMOVIDO:
[
  "react-native-maps",
  {
    "googleMapsApiKey": "AIzaSyBc0DiFwbS0yOJCuMi1KGwbc7_d1p8HyxQ"
  }
]

2. Downgrade da versão do react-native-maps

npm install react-native-maps@1.7.1

3. Remoção do PROVIDER_GOOGLE

// ANTES:
import MapView, { Marker, Polyline, PROVIDER_GOOGLE } from 'react-native-maps';

// DEPOIS:
import MapView, { Marker, Polyline } from 'react-native-maps';

4. Simplificação do DeliveryMap.tsx

  • Adicionado tratamento de erros robusto
  • Implementado fallback para quando o mapa falha
  • Removido uso de PROVIDER_GOOGLE
  • Adicionado try-catch em todas as operações críticas

5. Simplificação do RoutesScreen.tsx

  • Removido algoritmo TSP complexo
  • Removido hook useMapboxDirections
  • Removido cálculos de rota em tempo real
  • Mantido apenas funcionalidades básicas de visualização

Mudanças Principais

DeliveryMap.tsx

  • Tratamento de erros com fallback
  • Remoção de PROVIDER_GOOGLE
  • Validação robusta de coordenadas
  • Estados de loading e erro
  • Memoização para performance

RoutesScreen.tsx

  • Remoção de funcionalidades complexas
  • Foco na estabilidade
  • Interface simplificada
  • Carregamento de dados básico

Como Testar

  1. Build de produção:

    npx expo run:android --variant release
    
  2. Teste de navegação:

    • Abrir o app
    • Fazer login
    • Navegar para a aba "Rotas"
    • Verificar se não há crash
  3. Teste de funcionalidades:

    • Alternar entre mapa e lista
    • Clicar em entregas
    • Usar modo fullscreen
    • Verificar informações da rota

Status Atual

  • Crash resolvido
  • Mapa carrega sem problemas
  • Navegação funcional
  • Interface responsiva
  • ⚠️ Funcionalidades avançadas de roteamento removidas temporariamente

Próximos Passos

  1. Testar em diferentes dispositivos
  2. Implementar funcionalidades avançadas gradualmente
  3. Adicionar testes de estabilidade
  4. Monitorar performance

Notas Técnicas

  • O provider padrão do react-native-maps é mais estável
  • Funcionalidades complexas podem ser readicionadas gradualmente
  • Foco na estabilidade antes da funcionalidade completa