Table of Contents
- Problemas de Versiones
- Flutter / Dart SDK
- Equipo usa versiones diferentes
- Error: "The current Dart SDK version is X but Y is required"
- Error: "Unsupported Dart SDK constraint"
- Java JDK
- Python / pip
- Error: "No module named 'fastapi'"
- Error: "externally-managed-environment"
- Versiones de paquetes incompatibles
- Dependencias de Flutter
- Error: "version solving failed"
- Error: "pubspec.lock differs from pubspec.yaml"
- Error: "package has incompatible Dart SDK constraint"
- Git merge de pubspec.lock
- Problemas con FVM
- Downgrade de versiones
- Tabla de compatibilidad
- Verificar versiones actuales
- Siguiente paso
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.
# 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:
environment:
sdk: '>=3.4.0 <4.0.0' # compatible con Flutter 3.22+
Opción 2: Actualizar Flutter:
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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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:
fvm install 3.44.0
fvm use 3.44.0
Opción 2: Bajar la versión del paquete:
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:
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:
# 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:
# 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:
# 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:
# 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:
- Settings → Languages & Frameworks → Flutter
- Flutter SDK path:
<proyecto>/.fvm/flutter_sdk
VS Code:
// .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:
# 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
# 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 — verificar estado del backend
- Errores comunes — volver a problemas generales