gallery
gallery copied to clipboard
Gallery does not start, throws Unhandled Exception: MissingPlatformDirectoryException(Unable to get application documents directory)
Existing issue?
- [X] I checked the existing issues
What happened?
Expected vs actual result:
I am using flutter on a Linux system from a docker container. Flutter version is 3.10.5.
Build using the commands in the README, with finally the flutter run command results in a white screen and the following exception:
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPlatformDirectoryException(Unable to get application documents directory)
#0 GetStorage._init (package:get_storage/src/storage_impl.dart:49:7)
This docker container contains the flutter SDK and has properties for X or Wayland display server. Both do work with another Flutter application.
Perhaps it is as simple as a missing library in my container, but I can't find any reference to something usefull.
Steps to reproduce:
- Using Flutter SDK 3.10.5 in an image based on node:latest
- Flutter is installed using a git checkout of the stable version
- additional deps are installed using apt-get
- Clone gallery
- Build/Run following instructions
Relevant log output
No response
Hi, I have met the same problem as you, do you solve this problem?
Hi everyone. On Debian, my solution is to install the "xdg-user-dirs" package (sudo apt-get install xdg-user-dirs) , which provides the "xdg-user-dir" command.
Detail: I experienced the same issue on Debian 11 (Raspberry Pi OS Lite)
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPlatformDirectoryException(Unable to get application documents directory)
#0 GetStorage._init (package:get_storage/src/storage_impl.dart:49)
<asynchronous suspension>
#1 new GetStorage._internal.<anonymous closure> (package:get_storage/src/storage_impl.dart:30)
<asynchronous suspension>
#2 main (package:gallery/main.dart:29)
<asynchronous suspension>
I tried to search "Unable to get application documents directory" and it came from packages/path_provider/path_provider/lib/path_provider.dart. Its implementation indicates getApplicationDocumentsPath() has been used to get the path.
getApplicationDocumentsPath() is implemented in packages/path_provider/path_provider_linux/lib/src/path_provider_linux.dart, which use xdg.getUserDirectory('DOCUMENTS')
xdg.getUserDirectory() is implemented in packages/xdg_directories/lib/xdg_directories.dart, which runs xdg-user-dir DOCUMENTS to get the path.