Build ErrorFlutterDartBuild6 mnt baca
Mengatasi Version Mismatch pada Dart SDK Flutter
Build APK gagal dengan pesan SDK version mismatch setelah update Flutter: cara menyelaraskan kembali.
1 · Gejala & Log Pesan Error
error.log
$ flutter build apk --release The current Dart SDK version is 3.5.0. Because my_app requires SDK version ^3.6.0, version solving failed. Running Gradle task 'assembleRelease'... FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileFlutterBuildRelease'.
2 · Akar Penyebab Masalah
Constraint vs SDK Terpasang Tidak Cocok
File pubspec.yaml mendeklarasikan constraint versi Dart:
yaml
environment:
sdk: ^3.6.0Tanda ^ artinya "minimal 3.6.0, di bawah 4.0.0". Namun Flutter yang terpasang masih membundel Dart 3.5.0. Pub tidak bisa menyelesaikan dependensi karena tidak ada versi yang memenuhi kedua syarat.
Kenapa Bisa Terjadi?
pubspec.yamldiedit manual / di-copy dari proyek lain yang lebih baru.- Flutter di-upgrade sebagian (channel pindah tapi
flutter upgradetidak selesai). - CI memakai image Flutter yang lebih lama dari constraint proyek.
3 · Solusi & Diff Kode
✕ Sebelum (bermasalah)
before
# pubspec.yaml: constraint lebih baru dari SDK terpasang
environment:
sdk: ^3.6.0 # butuh Dart >= 3.6.0
flutter: ">=3.24.0"
# flutter --version → Dart 3.5.0 ❌✓ Sesudah (diperbaiki)
after
# Opsi A: upgrade Flutter (rekomendasi bila memungkinkan)
$ flutter upgrade
$ flutter --version # pastikan Dart >= 3.6.0 ✔
# Opsi B: turunkan constraint mengikuti SDK terpasang
environment:
sdk: ^3.5.0
flutter: ">=3.22.0"Langkah Perbaikan
- Cek versi terpasang:
flutter --version. Catat versi Dart-nya. - Pilih salah satu:
- Upgrade Flutter (
flutter upgrade) bila proyek boleh memakai versi terbaru, laluflutter pub get. - Turunkan constraint di
pubspec.yamlmengikuti SDK yang ada. Aman untuk proyek yang harus stay di versi lama.
- Upgrade Flutter (
- Bersihkan cache build:
flutter clean && flutter pub get. Sisa artefak versi lama sering bikin error hantu. - Untuk CI: pin versi Flutter di workflow (mis.
subosito/flutter-action@v2denganflutter-version: '3.24.0') agar konsisten denganpubspec.yaml.