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.dart
と package: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を上げたくない人は、他の解決策を参考にしてみてください。