From fa3a5ed3d257d1704b8a9ac2917600e7402bc296 Mon Sep 17 00:00:00 2001 From: hack_23031391_8ff9d8 <23031391@itcelaya.edu.mx> Date: Sat, 23 May 2026 02:35:09 +0000 Subject: [PATCH] =?UTF-8?q?A=C3=B1adir=2002-version.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 02-version.md.-.md | 461 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 461 insertions(+) create mode 100644 02-version.md.-.md diff --git a/02-version.md.-.md b/02-version.md.-.md new file mode 100644 index 0000000..607dcda --- /dev/null +++ b/02-version.md.-.md @@ -0,0 +1,461 @@ +# Problemas de Versiones + +Soluciones a conflictos de versiones de SDK, librerías y herramientas. + +--- + +## Flutter / Dart SDK + +### Equipo usa versiones diferentes + +**Síntoma:** +``` +pubspec.lock tiene conflictos en cada git pull +``` + +**Causa:** Algunos usan Flutter 3.44, otros 3.22, etc. + +**Solución:** **Usar FVM para sincronizar versiones.** + +```bash +# En la raíz del proyecto (una sola vez por el líder) +fvm use 3.44.0 +# Esto crea .fvm/fvm_config.json + +# Commitear el archivo +git add .fvm/fvm_config.json +git commit -m "Fijar versión de Flutter a 3.44.0" +git push + +# Todos los demás: +git pull +fvm install # instala la versión del proyecto +fvm flutter pub get +``` + +**Ventaja:** Todos usan exactamente la misma versión sin conflictos. + +--- + +### Error: "The current Dart SDK version is X but Y is required" + +**Síntoma:** +``` +The current Dart SDK version is 3.12.0. +Because basura_app requires SDK version >=3.8.0 <4.0.0, version solving failed. +``` + +**Causa:** Tu `pubspec.yaml` pide una versión que no tienes. + +**Solución:** + +**Opción 1:** Ajustar `pubspec.yaml` a tu versión: +```yaml +environment: + sdk: '>=3.4.0 <4.0.0' # compatible con Flutter 3.22+ +``` + +**Opción 2:** Actualizar Flutter: +```bash +fvm install 3.44.0 +fvm use 3.44.0 +fvm flutter pub get +``` + +--- + +### Error: "Unsupported Dart SDK constraint" + +**Síntoma:** +``` +The lower bound of "sdk: '>=3.8.0 <4.0.0'" must be 2.12.0 or higher +``` + +**Causa:** Versión muy antigua de Flutter. + +**Solución:** +```bash +# Actualizar Flutter +flutter upgrade + +# O usar FVM +fvm install 3.44.0 +fvm use 3.44.0 +``` + +--- + +## Java JDK + +### Error: "Gradle requires Java 11 or higher" + +**Síntoma:** +``` +ERROR: JAVA_HOME is set to an invalid directory +``` + +**Causa:** Java muy antiguo o `JAVA_HOME` mal configurado. + +**Solución:** +```bash +# 1. Instalar Java 17 (recomendado) +# Linux: +sudo apt install openjdk-17-jdk + +# macOS: +brew install openjdk@17 + +# Windows: +# Descargar desde adoptium.net + +# 2. Verificar +java -version # debe mostrar "17.x.x" + +# 3. Configurar JAVA_HOME +# Linux/macOS (.bashrc o .zshrc): +export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 + +# Windows (System Properties → Environment Variables): +JAVA_HOME=C:\Program Files\Java\jdk-17 +``` + +--- + +### Error: "Unsupported class file major version 65" + +**Síntoma:** +``` +Unsupported class file major version 65 +``` + +**Causa:** Estás usando Java 21 (version 65) pero Gradle necesita Java 17 (version 61). + +**Solución:** +```bash +# Cambiar a Java 17 +# Linux: +sudo update-alternatives --config java +# Selecciona java-17-openjdk + +# macOS: +export JAVA_HOME=/usr/local/opt/openjdk@17 + +# Windows: +# Desinstalar Java 21 +# Instalar Java 17 desde adoptium.net + +# Verificar +java -version # DEBE mostrar "17.x.x" +``` + +--- + +## Python / pip + +### Error: "No module named 'fastapi'" + +**Síntoma:** +``` +ModuleNotFoundError: No module named 'fastapi' +``` + +**Causa:** Dependencias no instaladas o virtualenv no activado. + +**Solución:** +```bash +# 1. Activar virtualenv +source venv/bin/activate # Linux/macOS +venv\Scripts\activate # Windows + +# 2. Instalar dependencias +pip install -r requirements.txt + +# 3. Verificar +pip list | grep fastapi +``` + +--- + +### Error: "externally-managed-environment" + +**Síntoma:** +``` +error: externally-managed-environment +This environment is externally managed +``` + +**Causa:** Python 3.11+ en algunas distros bloquea `pip install` global. + +**Solución:** +```bash +# Opción 1: Usar virtualenv (recomendado) +python -m venv venv +source venv/bin/activate +pip install -r requirements.txt + +# Opción 2: Forzar (no recomendado) +pip install --break-system-packages -r requirements.txt +``` + +--- + +### Versiones de paquetes incompatibles + +**Síntoma:** +``` +ERROR: pip's dependency resolver does not currently take into account +all the packages that are installed +``` + +**Causa:** Conflicto entre versiones de dependencias. + +**Solución:** +```bash +# 1. Limpiar caché de pip +pip cache purge + +# 2. Reinstalar desde cero +pip uninstall -y -r requirements.txt +pip install -r requirements.txt + +# 3. Si persiste, fijar versiones exactas en requirements.txt +fastapi==0.111.0 # en lugar de fastapi>=0.111.0 +``` + +--- + +## Dependencias de Flutter + +### Error: "version solving failed" + +**Síntoma:** +``` +Because basura_app depends on flutter_riverpod ^2.6.1 which requires SDK version >=3.0.0, +version solving failed. +``` + +**Causa:** Paquete incompatible con tu versión de Flutter. + +**Solución:** + +**Opción 1:** Actualizar Flutter: +```bash +fvm install 3.44.0 +fvm use 3.44.0 +``` + +**Opción 2:** Bajar la versión del paquete: +```yaml +dependencies: + flutter_riverpod: ^2.4.0 # versión más antigua compatible +``` + +--- + +### Error: "pubspec.lock differs from pubspec.yaml" + +**Síntoma:** +``` +The pubspec.lock file has changed since the last pub get +``` + +**Causa:** Alguien modificó `pubspec.yaml` pero no corrió `pub get`. + +**Solución:** +```bash +fvm flutter pub get + +# Commitear pubspec.lock +git add pubspec.lock +git commit -m "Actualizar pubspec.lock" +``` + +--- + +### Error: "package has incompatible Dart SDK constraint" + +**Síntoma:** +``` +The current Dart SDK version is 3.12.0. +Package 'some_package' requires SDK version ^2.17.0. +``` + +**Causa:** Un paquete viejo no soporta Dart 3.x. + +**Solución:** +```bash +# 1. Buscar versión actualizada del paquete +flutter pub upgrade some_package + +# 2. Si no existe, usar versión compatible +# En pubspec.yaml: +some_package: ^1.0.0 # versión vieja que funcione +``` + +--- + +## Git merge de pubspec.lock + +### Conflicto en pubspec.lock + +**Síntoma:** +``` +CONFLICT (content): Merge conflict in pubspec.lock +``` + +**Causa:** Dos personas agregaron dependencias diferentes. + +**Solución:** +```bash +# NO resolver manualmente — dejar que Flutter lo regenere + +# 1. Quedarte con una versión (la tuya o la de ellos) +git checkout --theirs pubspec.lock +# o +git checkout --ours pubspec.lock + +# 2. Regenerar desde pubspec.yaml +fvm flutter pub get + +# 3. Commitear el nuevo lock +git add pubspec.lock +git commit -m "Regenerado pubspec.lock" +``` + +--- + +## Problemas con FVM + +### Error: "fvm: command not found" + +**Síntoma:** +``` +zsh: command not found: fvm +``` + +**Causa:** FVM no está en el PATH. + +**Solución:** +```bash +# Agregar al PATH +# Linux/macOS (.bashrc o .zshrc): +export PATH="$PATH":"$HOME/.pub-cache/bin" + +# Reiniciar terminal +source ~/.zshrc # o ~/.bashrc + +# Verificar +fvm --version +``` + +--- + +### Error: "Flutter SDK not found" + +**Síntoma:** +``` +FVM: Flutter SDK not found at /Users/you/.fvm/versions/3.44.0 +``` + +**Causa:** La versión no está instalada. + +**Solución:** +```bash +# Instalar la versión +fvm install 3.44.0 + +# Listar versiones instaladas +fvm list +``` + +--- + +### IDE no reconoce el SDK de FVM + +**Síntoma:** Android Studio usa Flutter global en lugar de `.fvm/flutter_sdk`. + +**Solución:** + +**Android Studio:** +1. Settings → Languages & Frameworks → Flutter +2. Flutter SDK path: `/.fvm/flutter_sdk` + +**VS Code:** +```json +// .vscode/settings.json +{ + "dart.flutterSdkPath": ".fvm/flutter_sdk" +} +``` + +--- + +## Downgrade de versiones + +### Bajar de Flutter 3.44 a 3.22 + +**Razón:** Linux tiene problemas con Java 21 + Flutter 3.44. + +**Proceso:** +```bash +# 1. Instalar la versión LTS +fvm install 3.22.0 +fvm use 3.22.0 + +# 2. Actualizar pubspec.yaml +# environment: +# sdk: '>=3.4.0 <4.0.0' +# flutter: '>=3.22.0' + +# 3. Actualizar dependencias +fvm flutter pub get + +# 4. Commitear cambios +git add .fvm/fvm_config.json pubspec.yaml pubspec.lock +git commit -m "Downgrade a Flutter 3.22 LTS" + +# 5. Notificar al equipo para que todos hagan: +fvm install 3.22.0 +fvm flutter pub get +``` + +--- + +## Tabla de compatibilidad + +| Flutter | Dart | Java | Riverpod | Dio | +|---------|------|------|----------|-----| +| 3.44.0 | 3.8 | 17 | ^2.6.1 | ^5.4.0 | +| 3.22.0 | 3.4 | 17 | ^2.4.0 | ^5.3.0 | +| 3.19.0 | 3.3 | 17 | ^2.3.0 | ^5.2.0 | + +--- + +## Verificar versiones actuales + +```bash +# Flutter y Dart +flutter --version + +# Java +java -version + +# Python +python --version + +# pip +pip --version + +# Git +git --version + +# FVM (si lo usas) +fvm --version +``` + +--- + +## Siguiente paso + +- [Debug del simulador](03-debug-simulador.md) — verificar estado del backend +- [Errores comunes](01-errores-comunes.md) — volver a problemas generales