YAMAGATA STUDIO
ブログ一覧に戻る
Flutter ✕ Isar ✕ Riverpod の依存地獄を 10 分で抜けるメモ

Flutter ✕ Isar ✕ Riverpod の依存地獄を 10 分で抜けるメモ

2025年06月05日
Isarflutter

Flutter ✕ Isar ✕ Riverpod の依存地獄を 10 分で抜けるメモ

TL;DR

  1. Riverpod を 2.4 系に固定
  2. android/build.gradleGroovy に戻し、
  3. namespace フォールバックスクリプトを 1 ブロック貼る
  4. flutter pub get && flutter run でビルド通過

1. pubspec.yaml ― Riverpod を 2.4 系にダウングレード

dependencies:
  flutter_riverpod: ^2.4.0            # ← ここがポイント
  riverpod_annotation: ^2.4.0
  isar: ^3.1.0+1
  isar_flutter_libs: ^3.1.0+1

dev_dependencies:
  build_runner: ^2.4.8
  riverpod_generator: ^2.4.4          # 2.4.x は analyzer 5 系
  isar_generator: ^3.1.0+1
  riverpod_lint: ^2.3.1

Isar 3.1 系 が要求する analyzer < 6 と揃うので依存競合が消えます。


2. android/build.gradle を Groovy ファイルに戻す

mv android/build.gradle.kts android/build.gradle

Flutter の標準テンプレは今も Groovy。迷ったら素直に合わせた方が楽。


3. namespace を後付けするフォールバックスクリプト

android/build.gradle(プロジェクトレベル)末尾にペタッ👇

// ==== namespace fallback for AGP 8+ =====================
subprojects {
    afterEvaluate { project ->
        if (project.hasProperty('android')) {
            project.android {
                if (!namespace) {
                    // 例: dev.isar.isar_flutter_libs
                    namespace project.group.toString()
                }
            }
        }
    }
}
// ========================================================

  • AGP 8 から library モジュールに namespace 必須
  • isar_flutter_libs が未対応なのでビルドをここで救済する

4. キャッシュを洗ってビルド

flutter clean
flutter pub get
flutter run          # or flutter build apk


動作確認チェックリスト ✅

項目 期待値
flutter pub get 依存解決 OK 😎
flutter pub run build_runner build コード生成成功
実機 / エミュレータ起動 起動& Isar の CRUD が動く

5. 公式修正が来たら

  1. flutter pub upgrade isar_flutter_libs
  2. 上記 namespace ブロックを削除
  3. Groovy ⇆ Kotlin DSL は好みでどうぞ

まとめ

before after
Riverpod 2.6 + Isar 3.1 → analyzer 衝突 Riverpod 2.4 へ戻して解決
AGP 8 → Namespace not specified Groovy スクリプトで namespace 付与
.gradle.kts で DSL エラー .gradle に戻して即解決