【Flutter】Error: ‘CarouselController’ is imported from both の解決方法

Flutter 3.24.0にバージョンアップした際に、carousel_slider-4.2.1で発生したエラーの備忘録です。

エラー内容

HTML
Error (Xcode): ../../../.pub-cache/hosted/pub.dev/carousel_slider-4.2.1/lib/carousel_slider.dart:9:1: Error: 'CarouselController' is imported from both 'package:carousel_slider/carousel_controller.dart' and 'package:flutter/src/material/carousel.dart'.

エラーを見ると、package:carousel_slider/carousel_controller.dartpackage:flutter/src/material/carousel.dart の両方から同じクラスのCarouselControllerがインポートされています。と書いてあります。

似たようなエラーは発生していないか調査!

読んで見ると、エイリアス(別名)やhideキーワードを使うこと、またはCarouselControllerの名前を変更することが解決策として提案されています。

解決策①

インポート時にエイリアス(別名)を使って名前の衝突を避ける

Dart
import 'package:carousel_slider/carousel_controller.dart' as custom_carousel;
import 'package:flutter/src/material/carousel.dart' as material_carousel;
// 使用時にエイリアスを使う
final controller = custom_carousel.CarouselController();

解決策②

carousel_slider_plusパッケージを使用する

解決策③

hideを使い、アクセス不可のクラスを指定する

Dart
import 'package:flutter/material.dart' hide CarouselController;

解決方法

carousel_sliderのversionsを5.0.0にする。

pubspec.yaml
carousel_slider: ^5.0.0

carousel_sliderのversionsを上げたくない人は、他の解決策を参考にしてみてください。