2.6 KiB
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:
- Configuração incorreta do react-native-maps
- Uso de PROVIDER_GOOGLE sem configuração adequada
- 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
-
Build de produção:
npx expo run:android --variant release -
Teste de navegação:
- Abrir o app
- Fazer login
- Navegar para a aba "Rotas"
- Verificar se não há crash
-
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
- Testar em diferentes dispositivos
- Implementar funcionalidades avançadas gradualmente
- Adicionar testes de estabilidade
- 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