Flutter: Macのデスクトップアプリで、path_providerのメソッドが使えない

※当サイトは、アフィリエイト広告を利用しています

結論:「path_provider_macos」をインポートして、「getApplicationDocumentsPath」を呼び出す

2022/3/2 Flutter エラー・バグ日記

 

Android/iOSでリリース済のアプリを、Macのデスクトップアプリとしてビルドすると、「path_provider」のメソッドである「getApplicationDocumentsDirectory」が下記エラーで使えない。

 

Unhandled Exception: MissingPluginException(No implementation found for method getApplicationDocumentsDirectory on channel plugins.flutter.io/path_provider)

 

本記事はライトな日記思考で書いているので、詳細説明はしておらず、基本、テキストのみで画像とかはあまり載せておりません。。m(_ _)m

解説記事ではないため、解決していない内容や、その時々の間違った解釈を述べてしまっている可能性が大いにありますので、何卒、ご了承ください。

 

使っている「path_provider」のバージョンは^2.0.4で、最新ではないものの、下記パッケージのページを見るとMACOS対応になっている。

 

 

Flutterデスクトップアプリの下記公式チュートリアルページに従い、「entitlements」ファイルの権限設定もちゃんとしている。

 

 

なぜだろう。。。

 

「path_provider」のソースコードを見ても分からず、ネットにも情報が見つからない。

 

ふと、下記パッケージのページ右側の「Dependencies」のところに「path_provider_macos」というmac用のパッケージがあることに気づく。

 

 

恐らく「path_provider」を入れれば付随してくるパッケージだと思うが、「path_provider_macos」のExampleページを覗くと、「getApplicationDocumentsPath」というパス取得メソッドを使うコード例が掲載されていた。

 

そこで、「path_provider_macos」パッケージをインポートして、ソースコードを見てみると、「PathProviderMacOS」クラスのインスタンスを作れば、「getApplicationDocumentsPath」を呼び出せそうだと分かったので、やってみると無事、エラーを解消できた。

 

パス取得のメソッドは複数用意されているが、「getApplicationDocumentsPath」は、MacのFinderの「書類」フォルダのパスを表していた。

 

FlutterでMacのデスクトップアプリを作成される方には、ご参考です。

 

リリースしたアプリ(全てFlutterで開発)

 

個人アプリ開発で役立ったもの

おすすめの学習教材

超初心者向けでオススメな元Udemyの講座/

 

 \キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/

 

\Gitの基礎について無料で学べる/

 

おすすめの学習書籍

実用的image_pickerに関してかなり助けられた/

 

Dartの基礎文法を素早くインプットできる/


Dart入門 - Dartの要点をつかむためのクイックツアー

タイトルとURLをコピーしました