UNPKG

react-native-bluetooth-datecs-printer

Version:

Module to printer in a Datecs bluetooth Printer

404 lines (315 loc) 8.41 kB
# ⚠️ Troubleshooting: Problemas Comuns ao Testar ## Erro: "Failed to resolve plugin for module expo-build-properties" ### Sintoma: ``` PluginError: Failed to resolve plugin for module "expo-build-properties" Do you have node modules installed? ``` ### Causa: O pacote `expo-build-properties` não está instalado ou não está no `package.json`. ### Solução: #### Opção 1: Instalar manualmente ```bash cd test-printer-app # ou o nome do seu projeto npm install expo-build-properties npx expo run:android ``` #### Opção 2: Reinstalar tudo ```bash cd test-printer-app rm -rf node_modules package-lock.json npm install npm install expo-build-properties npm install file:../react-native-bluetooth-datecs-printer npx expo prebuild --clean npx expo run:android ``` #### Opção 3: Verificar package.json Certifique-se que o `package.json` contém: ```json { "dependencies": { "expo-build-properties": "~0.13.0", "react-native-bluetooth-datecs-printer": "file:../react-native-bluetooth-datecs-printer" } } ``` --- ## Erro: "Unsupported engine" (Node.js) ### Sintoma: ``` npm warn EBADENGINE Unsupported engine npm warn EBADENGINE required: { node: '>= 20.19.4' } npm warn EBADENGINE current: { node: 'v20.19.0' } ``` ### Causa: React Native 0.81+ requer Node.js 20.19.4 ou superior. ### Solução: #### Atualizar Node.js: ```bash # Verificar versão atual node --version # Baixar Node.js 20.19.4+ ou 22.x LTS # https://nodejs.org/ ``` #### Ou ignorar o warning (geralmente funciona): Os warnings podem ser ignorados se estiver próximo da versão necessária (20.19.0 vs 20.19.4). --- ## Erro: "Cannot find module" após instalar biblioteca ### Sintoma: ``` Cannot find module 'react-native-bluetooth-datecs-printer' ``` ### Causa: Caminho incorreto ou biblioteca não linkada corretamente. ### Solução: #### Reinstalar com caminho absoluto: ```bash cd test-printer-app npm uninstall react-native-bluetooth-datecs-printer npm install file:C:/projetos/masfelix/react-native-bluetooth-datecs-printer npx expo prebuild --clean ``` #### Verificar instalação: ```bash ls node_modules/react-native-bluetooth-datecs-printer # Deve mostrar os arquivos da biblioteca ``` --- ## Erro: Prebuild falha ### Sintoma: ``` Error: Failed to prebuild ``` ### Possíveis causas e soluções: #### 1. Java não instalado ou versão errada: ```bash # Verificar Java java --version # Necessário: Java 17 ou 11 # Instalar Java 17 (Windows): # https://adoptium.net/ ``` #### 2. Android SDK não configurado: ```bash # Verificar variáveis de ambiente echo $ANDROID_HOME # Linux/Mac echo $env:ANDROID_HOME # PowerShell # Deve apontar para o SDK (ex: C:\Users\USER\AppData\Local\Android\Sdk) ``` #### 3. Gradle não consegue baixar dependências: ```bash cd android ./gradlew clean cd .. npx expo prebuild --clean ``` #### 4. Problemas com cache: ```bash # Limpar cache do Expo npx expo prebuild --clean # Limpar cache do npm npm cache clean --force # Limpar tudo e reinstalar rm -rf node_modules package-lock.json android ios npm install npx expo prebuild ``` --- ## Erro: Build falha no Android ### Sintoma: ``` BUILD FAILED in 1m 23s ``` ### Soluções: #### 1. Verificar logs detalhados: ```bash npx expo run:android --no-build-cache ``` #### 2. Limpar build Android: ```bash cd android ./gradlew clean ./gradlew --stop cd .. npx expo run:android ``` #### 3. Verificar configuração do Gradle: Verifique `android/build.gradle` da biblioteca tem: ```gradle compileSdk 36 minSdk 26 targetSdk 36 ``` #### 4. Conflito de versões: ```bash cd android ./gradlew app:dependencies # Verificar conflitos ``` --- ## Erro: App instala mas crasha ao abrir ### Sintoma: App instala no dispositivo mas fecha imediatamente. ### Soluções: #### 1. Ver logs do Android: ```bash npx react-native log-android # ou adb logcat | grep -i "ReactNative" ``` #### 2. Permissões não concedidas: Verifique que está solicitando permissões em runtime para Android 12+. #### 3. Build de desenvolvimento vs produção: ```bash # Testar em modo debug primeiro npx expo run:android --variant debug # Se funcionar, testar release: npx expo run:android --variant release ``` --- ## Erro: "Expo Go not supported" ### Sintoma: Mensagem dizendo que a biblioteca não funciona com Expo Go. ### Solução: Isso é **esperado**! Esta biblioteca nativa requer: - `npx expo prebuild` - Development Build - EAS Build - **NÃO** funciona com Expo Go ```bash # Usar desta forma: npx expo prebuild npx expo run:android ``` --- ## Erro: Script PowerShell não executa ### Sintoma: ``` .\test-library.ps1 : File cannot be loaded because running scripts is disabled ``` ### Solução: ```powershell # Executar como Administrador: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser # Depois executar o script: .\test-library.ps1 ``` --- ## Erro: "ENOENT: no such file or directory, open 'assets/splash.png'" ### Sintoma: ``` withAndroidDangerousBaseMod: ENOENT: no such file or directory, open 'assets/splash.png' ``` ### Causa: O `app.json` referencia assets (icon, splash) que não existem. ### Solução: #### Opção 1: Remover referências a assets do app.json ```json { "expo": { "name": "test-printer-app", "slug": "test-printer-app", "version": "1.0.0", "android": { "permissions": ["BLUETOOTH_CONNECT", "BLUETOOTH_SCAN"], "package": "com.test.printerapp" }, "plugins": [ ["expo-build-properties", { "android": { "compileSdkVersion": 36, "targetSdkVersion": 36, "minSdkVersion": 26 } }] ] } } ``` #### Opção 2: Criar assets básicos ```bash mkdir -p assets # Criar imagens 1x1 pixel temporárias convert -size 1x1 xc:white assets/icon.png convert -size 1x1 xc:white assets/splash.png convert -size 1x1 xc:white assets/adaptive-icon.png ``` #### Opção 3: Executar script atualizado Os scripts `test-library.ps1` e `test-simple.ps1` foram corrigidos para não referenciar assets. --- ## Erro: "ENOENT: no such file or directory" (arquivos de exemplo) ### Sintoma: Arquivos de exemplo não encontrados. ### Solução: #### Verificar que os arquivos existem: ```bash cd c:\projetos\masfelix\react-native-bluetooth-datecs-printer ls app.json.example ls examples/ExpoExample.tsx ``` #### Se não existirem, criar app.json manualmente: ```json { "expo": { "name": "YourAppName", "slug": "your-app-name", "plugins": [ ["expo-build-properties", { "android": { "compileSdkVersion": 36, "targetSdkVersion": 36, "minSdkVersion": 26, "buildToolsVersion": "35.0.0" } }] ], "android": { "permissions": [ "BLUETOOTH_CONNECT", "BLUETOOTH_SCAN" ], "package": "com.yourcompany.yourapp" } } } ``` --- ## Checklist de Verificação Antes de reportar um problema, verifique: - [ ] Node.js 20.19.4+ instalado - [ ] Java 17 ou 11 instalado - [ ] Android SDK instalado e configurado - [ ] ANDROID_HOME configurado - [ ] `expo-build-properties` está no package.json - [ ] Biblioteca instalada em node_modules - [ ] `npx expo prebuild` executado - [ ] Não está tentando usar com Expo Go --- ## Comandos Úteis de Diagnóstico ```bash # Verificar versões node --version npm --version java --version # Verificar Android echo $ANDROID_HOME adb devices # Verificar instalação ls node_modules/expo-build-properties ls node_modules/react-native-bluetooth-datecs-printer # Ver logs npx react-native log-android # Limpar tudo rm -rf node_modules package-lock.json android ios npm install npx expo prebuild --clean ``` --- ## Ainda com Problemas? 1. Verifique os logs completos 2. Compare com o exemplo em `examples/ExpoExample.tsx` 3. Teste primeiro com `test-simple.ps1` limpo 4. Verifique que tem as versões corretas instaladas 5. Consulte [EXPO_SETUP.md](./EXPO_SETUP.md) para configuração detalhada