diff --git a/packages/path_provider/path_provider_windows/CHANGELOG.md b/packages/path_provider/path_provider_windows/CHANGELOG.md index ca4621471891..02c3b2300fc0 100644 --- a/packages/path_provider/path_provider_windows/CHANGELOG.md +++ b/packages/path_provider/path_provider_windows/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.1 + +* Fix a crash when a known folder can't be located. + ## 2.0.0 * Migrate to null safety diff --git a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart index 13841a058638..971967373438 100644 --- a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart +++ b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart @@ -88,7 +88,11 @@ class PathProviderWindows extends PathProviderPlatform { @override Future getApplicationSupportPath() async { - final String appDataRoot = await getPath(WindowsKnownFolder.RoamingAppData); + final String? appDataRoot = + await getPath(WindowsKnownFolder.RoamingAppData); + if (appDataRoot == null) { + return null; + } final Directory directory = Directory( path.join(appDataRoot, _getApplicationSpecificSubdirectory())); // Ensure that the directory exists if possible, since it will on other @@ -114,7 +118,7 @@ class PathProviderWindows extends PathProviderPlatform { /// /// folderID is a GUID that represents a specific known folder ID, drawn from /// [WindowsKnownFolder]. - Future getPath(String folderID) { + Future getPath(String folderID) { final Pointer> pathPtrPtr = calloc>(); final Pointer knownFolderID = calloc()..ref.setGUID(folderID); @@ -130,6 +134,7 @@ class PathProviderWindows extends PathProviderPlatform { if (hr == E_INVALIDARG || hr == E_FAIL) { throw WindowsException(hr); } + return Future.value(null); } final String path = pathPtrPtr.value.toDartString(); diff --git a/packages/path_provider/path_provider_windows/pubspec.yaml b/packages/path_provider/path_provider_windows/pubspec.yaml index d152869f197d..95d9f5dc8f61 100644 --- a/packages/path_provider/path_provider_windows/pubspec.yaml +++ b/packages/path_provider/path_provider_windows/pubspec.yaml @@ -1,7 +1,7 @@ name: path_provider_windows description: Windows implementation of the path_provider plugin homepage: https://github.com/flutter/plugins/tree/master/packages/path_provider/path_provider_windows -version: 2.0.0 +version: 2.0.1 flutter: plugin: