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.0

Tanda ^ 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.yaml diedit manual / di-copy dari proyek lain yang lebih baru.
  • Flutter di-upgrade sebagian (channel pindah tapi flutter upgrade tidak 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

  1. Cek versi terpasang: flutter --version. Catat versi Dart-nya.
  2. Pilih salah satu:
    • Upgrade Flutter (flutter upgrade) bila proyek boleh memakai versi terbaru, lalu flutter pub get.
    • Turunkan constraint di pubspec.yaml mengikuti SDK yang ada. Aman untuk proyek yang harus stay di versi lama.
  3. Bersihkan cache build: flutter clean && flutter pub get. Sisa artefak versi lama sering bikin error hantu.
  4. Untuk CI: pin versi Flutter di workflow (mis. subosito/flutter-action@v2 dengan flutter-version: '3.24.0') agar konsisten dengan pubspec.yaml.