0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flutter "Unresolved reference" エラーで以前ビルドできていたプロジェクトのビルドに失敗した際の対処法

Last updated at Posted at 2025-03-13

事象

Flutter で開発しており、Android 向けに以前ビルドできていたプロジェクトのビルドが Unresolved reference エラーで失敗する

e: file:///C:/Users/{your username}/AppData/Local/Pub/Cache/hosted/pub.dev/image_gallery_saver-2.0.3/android/src/main/kotlin/com/example/imagegallerysaver/ImageGallerySaverPlugin.kt:21:48 Unresolved reference 'Registrar'.

原因

image_gallery_saver パッケージが Flutter の最新バージョンで削除された API に依存していたためだった。
パッケージのソース内に下記記述があり、io.flutter.plugin.common.PluginRegistry.Registrar を調べたところ最近の Flutter アップデートで削除されていた。

import io.flutter.plugin.common.PluginRegistry.Registrar

解消方法

方法1. image_gallery_saver パッケージをforkして、新しい API を使用するよう修正する
方法2. Flutter のバージョンを下げる

最新の image_gallery_saver パッケージ(2.0.3)がまだ古い API を参照したままだったので、image_gallery_saver のバージョンを上げても解決しない。知らずに Flutter のバージョンアップがされてしまっていたようなのでiOSビルド時にFlutterのアップデートを促されアップデートしてしまったので、私は 2 の方法で解消した。

1. 現在のバージョン確認

$ flutter --version
Flutter 3.29.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 09de023485 (12 days ago) • 2025-02-28 13:44:05 -0800
Engine • revision 871f65ac1b
Tools • Dart 3.7.0 • DevTools 2.42.2

2. ダウングレード

$ flutter downgrade
Downgrade flutter to version 3.27.1
? [y|n]: y
Success

ダウングレード後のバージョン確認

$ flutter --version
Checking Dart SDK version... 
Downloading Dart SDK from Flutter engine cb4b5fff73850b2e42bd4de7cb9a4310a78ac40d... 
Expanding downloaded archive with PowerShell...
Building flutter tool... 
Running pub upgrade... 
Resolving dependencies... (1.4s)
Downloading packages...
Got dependencies.
Flutter 3.27.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 17025dd882 (3 months ago) • 2024-12-17 03:23:09 +0900
Engine • revision cb4b5fff73
Tools • Dart 3.6.0 • DevTools 2.40.2

3. 依存関係の更新

$ flutter clean # 実行結果省略
$ flutter pub get # 実行結果省略

4. ビルド

flutter run --debug

おわりに

今回は image_gallery_saver と Register API だったが、他のパッケージと API でも同様のことは起こりえるので、Unresolved reference エラー発生時はパッケージの依存している Flutter API が廃止されていないか調べるとよさそう。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?