99 lines
2.6 KiB
Markdown
99 lines
2.6 KiB
Markdown
|
|
# 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
|
||
|
|
```json
|
||
|
|
// REMOVIDO:
|
||
|
|
[
|
||
|
|
"react-native-maps",
|
||
|
|
{
|
||
|
|
"googleMapsApiKey": "AIzaSyBc0DiFwbS0yOJCuMi1KGwbc7_d1p8HyxQ"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Downgrade da versão do react-native-maps
|
||
|
|
```bash
|
||
|
|
npm install react-native-maps@1.7.1
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Remoção do PROVIDER_GOOGLE
|
||
|
|
```typescript
|
||
|
|
// 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**:
|
||
|
|
```bash
|
||
|
|
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
|