Baseflow / flutter_cache_manager

Generic cache manager for flutter
https://baseflow.com
MIT License
739 stars 427 forks source link

`getFileFromCache` future does not resolve sometimes on android #390

Open sillydomnom opened 1 year ago

sillydomnom commented 1 year ago

Hey together,

there is an issue with the flutter_cache_manager which is only happening sometimes on android. At this point we are not sure under wich circumstances, but most of the times when something changes on Android (e.g. Application switching, Updating the App version)

My code looks like this:

logMessage(
        'Loading file from cache...',
        extras: {'File': url},
      );
      var file = await _cacheManager.getFileFromCache(url);

      if (file == null) {
        logMessage(
          'File not in cache. Marked for retrieval.',
          extras: {'File': url},
        );
        futures.add(_repository.retrieveAsset(url)
          ..then((file) async {
            logMessage(
              'File successfully retrieved. Caching...',
              extras: {'File': url},
            );
            await _cacheManager.putFile(url, file);
            logMessage(
              'Successfully cached file.',
              extras: {'File': url},
            );
          }));
      } else {
        logMessage(
          'Found file in cache.',
          extras: {'File': url},
        );
      }

The logs are only going until Loading file from cache..., after that the class is never returning any logs. So it is likely that the error is in var file = await _cacheManager.getFileFromCache(url); as the future never resolves. Moreover the problem is not reproduceable on any device as long as the debugger is attached. At this point I am not sure what to do anymore. Maybe you have any ideas?

osharaki commented 1 year ago

Also being affected by this unfortunately and haven't found a solution till now.

TaehwanSong commented 6 months ago

Any solution for this issue? I am having the same problem.