Résoudre : path_provider_android.dart:8:1: Error: Type ‘messages.StorageDirectory’ not found.
Récemment, j’ai dû installer le package path_provider sur mon application Flutter pour les besoins d’un tuto. Tout fonctionnait bien jusqu’à ce que mon application ne puisse plus démarrer et que ce message apparaisse dans ma console de débogage :
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:8:1: Error: Type 'messages.StorageDirectory' not found.
messages.StorageDirectory _convertStorageDirectory(
^^^^^^^^^^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:38:9: Error: Type 'messages.PathProviderApi' not found.
final messages.PathProviderApi _api = messages.PathProviderApi();
^^^^^^^^^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:12:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.root;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:14:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.music;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:16:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.podcasts;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:18:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.ringtones;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:20:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.alarms;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:22:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.notifications;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:24:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.pictures;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:26:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.movies;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:28:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.downloads;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:30:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.dcim;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:32:23: Error: Undefined name 'StorageDirectory'.
return messages.StorageDirectory.documents;
^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:38:18: Error: 'PathProviderApi' isn't a type.
final messages.PathProviderApi _api = messages.PathProviderApi();
^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dev/path_provider_android-2.2.15/lib/path_provider_android.dart:38:50: Error: Method not found: 'PathProviderApi'.
final messages.PathProviderApi _api = messages.PathProviderApi();
^^^^^^^^^^^^^^^
Target kernel_snapshot_program failed: Exception
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command '/Users/pierrecourtois/development/flutter/bin/flutter'' finished with non-zero exit value 1
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
BUILD FAILED in 9s
Running Gradle task 'assembleDebug'... 10,2s
Error: Gradle task assembleDebug failed with exit code 1
Même après avoir supprimé le package de mon fichier pubspec.yaml, et avoir lancé flutter clean, l’erreur persistait.
Toutefois, j’ai finalement réussi à remettre les choses en ordre en suivant ces étapes.
Pour commencer, nettoyez tous les fichiers qui ont été générés par Flutter lors de l’installation du package :
flutter clean
rm -rf .dart_tool
rm -rf build
rm -f pubspec.lock
Puis régénérez-les en lançant :
flutter pub get
Votre application devrait pouvoir se relancer normalement désormais.