Flutterプロジェクトにおける google_fonts
パッケージのエラー「Type 'FontFeature' not found」の解決方法
エラー概要
Flutterプロジェクトで google_fonts
(バージョン 6.2.0)使用時に発生する以下のエラー:
log
Error: 'FontFeature' isn't a type.
List<FontFeature>? fontFeatures,
^^^^^^^^^^^
Target kernel_snapshot failed: Exception
このエラーはビルドを失敗させ、flutter clean
や pub get
では解決しません。
⚠️ 根本原因
google_fonts
パッケージの最新バージョン(6.2.0以上)に存在する互換性問題:
- Dartコンパイラが
FontFeature
型を認識できない - Flutter SDKの特定バージョンとの依存関係の不整合(主に2024年3月時点で報告)
🛠️ 推奨解決策:パッケージバージョンのダウングレード
pubspec.yaml
を編集yamldependencies: flutter: sdk: flutter # 変更前(問題発生バージョン) # google_fonts: ^6.2.0 # 変更後(安定バージョン) google_fonts: 6.1.0 # ^キャレットを必ず削除
依存関係の再取得&リビルド
bashflutter clean flutter pub get flutter run
必須注意点
- キャレット(^) の完全削除が必要: 記号を残すと自動で問題バージョンが参照されます
- 動作検証済バージョン: 正常動作が確認されているバージョン
6.1.0
(最安定)6.0.0
5.1.0
🔍 代替解決手法(状況別)
手法1: Flutter SDK全面アップグレード
bash
flutter upgrade # SDK自体を最新安定版に更新
flutter pub upgrade # 全パッケージ最新化
- 効果: SDKとパッケージの依存関係解消
- 推奨条件: プロジェクトが最新SDKへの移行可能な場合
手法2: 開発環境変更(Android古いOS向け)
Android 8などでエラー発生時:
- 一旦Android 14+端末で実行(正常動作確認)
- 問題端末で再実行→エラー解消例あり
手法3: 代替バージョンの試用
yaml
# バージョン指定のバリエーション(6.1.0無効時)
google_fonts: "6.0.0" # 引用符推奨:文字列であることを明示
# または
google_fonts: 5.1.0
🔑 根本対策の考え方
- バージョン固定:
pubspec.yaml
ではpackage: 1.2.3
形式(キャレットなし)が安定 - パッケージチェック: アップデート前の pub.devレポート確認
- 依存関係トラブルシューティング:bash
flutter pub deps # パッケージ依存ツリー表示 flutter pub outdated # 非互換パッケージ検出
予防的対策
定期的な flutter pub upgrade --major-versions
実行で互換性破壊的更新を検知可能
✔️ 最終検証ポイント
対策手法 | メリット | デメリット |
---|---|---|
6.1.0固定 | 即時解決可能 | 新機能利用不可 |
Flutter全体アップグレード | 最新機能利用可 | プロジェクト変更リスク |
端末依存回避 | コード変更不要 | 環境限定解決 |
最善策: 現状では
google_fonts: 6.1.0
の厳格指定が最も安全かつ信頼性の高い解決法。プロジェクトが長期利用予定ならFlutter SDKの定期的アップデート推奨。