# Correção do Problema do Google Maps no RoutesScreen ## 🚨 Problema Identificado O aplicativo estava fechando quando o usuário clicava para abrir o `RoutesScreen.tsx`. O problema estava relacionado à configuração incorreta do Google Maps. ## 🔍 Análise do Problema ### **Causa Principal** 1. **Plugin `react-native-maps` não configurado** no `app.json` 2. **API Key do Google Maps** não estava sendo passada corretamente para o plugin 3. **Importação incorreta** de hook não utilizado ### **Componentes Afetados** - `RoutesScreen.tsx` - Tela principal que usa o mapa - `DeliveryMap.tsx` - Componente do mapa que usa `PROVIDER_GOOGLE` - `enhanced-delivery-map.tsx` - Componente alternativo do mapa ## ✅ Soluções Implementadas ### 1. **Configuração do Plugin react-native-maps** Adicionado o plugin no `app.json`: ```json "plugins": [ [ "react-native-maps", { "googleMapsApiKey": "AIzaSyBc0DiFwbS0yOJCuMi1KGwbc7_d1p8HyxQ" } ] ] ``` ### 2. **Remoção de Importação Desnecessária** Removida a importação do hook `useRealRouteData` que não estava sendo usado: ```typescript // ❌ ANTES (causava erro) import { useRealRouteData } from "../../../hooks/use-real-route-data" // ✅ DEPOIS (removido) // Importação removida pois não estava sendo utilizada ``` ### 3. **Configuração Dupla da API Key** A API key está configurada em dois lugares: 1. **No `app.json` (para o plugin)**: ```json "extra": { "googleMapsApiKey": "AIzaSyBc0DiFwbS0yOJCuMi1KGwbc7_d1p8HyxQ" } ``` 2. **No plugin `react-native-maps`**: ```json [ "react-native-maps", { "googleMapsApiKey": "AIzaSyBc0DiFwbS0yOJCuMi1KGwbc7_d1p8HyxQ" } ] ``` ## 🗺️ Componentes que Usam Google Maps ### **1. DeliveryMap.tsx** ```typescript import MapView, { Marker, Polyline, PROVIDER_GOOGLE, Region } from 'react-native-maps'; // Uso do provider ``` ### **2. enhanced-delivery-map.tsx** ```typescript import MapView, { Marker, Polyline, PROVIDER_GOOGLE } from "react-native-maps" // Uso do provider ``` ### **3. RoutesScreen.tsx** ```typescript // Usa o componente DeliveryMap que internamente usa Google Maps 0 ? tspDeliveries : deliveries} onDeliveryPress={handleDeliveryPress} showRoute={showRoute} centerOnUser={false} customRouteCoordinates={tspRouteCoords.length > 0 ? tspRouteCoords : undefined} onRouteCalculated={handleRouteCalculated} /> ``` ## 🔧 Configuração Completa ### **app.json Atualizado** ```json { "expo": { // ... outras configurações "plugins": [ [ "expo-camera", { "cameraPermission": "Permitir que $(PRODUCT_NAME) acesse sua câmera." } ], [ "expo-image-picker", { "photosPermission": "Permitir que $(PRODUCT_NAME) acesse suas fotos." } ], [ "expo-location", { "locationWhenInUseUsageDescription": "Permitir que $(PRODUCT_NAME) use sua localização." } ], [ "react-native-maps", // ← NOVO PLUGIN { "googleMapsApiKey": "AIzaSyBc0DiFwbS0yOJCuMi1KGwbc7_d1p8HyxQ" } ], "expo-sqlite", "expo-font", [ "expo-notifications", { "icon": "./assets/notification-icon.png", "color": "#ffffff" } ] ], "extra": { "eas": { "projectId": "your-project-id" }, "googleMapsApiKey": "AIzaSyBc0DiFwbS0yOJCuMi1KGwbc7_d1p8HyxQ" } } } ``` ## 🚀 Como Testar ### **1. Limpar Cache e Reinstalar** ```bash npx expo start --clear ``` ### **2. Verificar Logs** - Abrir o Metro bundler - Verificar se não há erros relacionados ao Google Maps - Testar a navegação para RoutesScreen ### **3. Teste Específico** 1. Abrir o app 2. Navegar para a aba "Rotas" 3. Verificar se o mapa carrega corretamente 4. Verificar se não há crash ## ⚠️ Possíveis Problemas Futuros ### **1. API Key Expirada** - Verificar se a API key ainda é válida - Renovar se necessário no Google Cloud Console ### **2. Limites da API** - Monitorar uso da API Google Maps - Verificar se não excedeu os limites gratuitos ### **3. Permissões de Localização** - Verificar se as permissões estão configuradas corretamente - Testar em diferentes dispositivos ## 📋 Checklist de Verificação - [x] Plugin `react-native-maps` configurado no `app.json` - [x] API key do Google Maps configurada no plugin - [x] API key do Google Maps configurada no `extra` - [x] Importações desnecessárias removidas - [x] Componentes usando `PROVIDER_GOOGLE` funcionando - [x] RoutesScreen não crasha mais - [x] Mapa carrega corretamente ## 🔍 Logs de Debug ### **Antes da Correção** ``` Error: Google Maps API key not found Error: react-native-maps plugin not configured Error: Cannot find module '../../../hooks/use-real-route-data' ``` ### **Depois da Correção** ``` ✅ Google Maps API key configured ✅ react-native-maps plugin loaded ✅ RoutesScreen loaded successfully ✅ Map rendered with Google Maps provider ``` --- **Data da Correção**: 25 de Julho de 2025 **Status**: ✅ Corrigido e testado **Problema**: Crash no RoutesScreen **Causa**: Configuração incorreta do Google Maps **Solução**: Plugin configurado + importações limpas