flutter icon indicating copy to clipboard operation
flutter copied to clipboard

[image_picker] GIF resize loses animation

Open ozzy1873 opened this issue 6 years ago • 16 comments
trafficstars

Specifying maxWidth and maxHeight when picking a GIF will cause the animation to be lost.

ozzy1873 avatar Jun 09 '19 19:06 ozzy1873

This should have been fixed with https://github.com/flutter/plugins/pull/1638. Please close the issue if you can confirm the same.

cyanglaz avatar Jul 12 '19 16:07 cyanglaz

I upgraded to 0.6.1 and now animations are lost even without attempting to resize.

ozzy1873 avatar Jul 31 '19 14:07 ozzy1873

@ozzy1873 GIFs animation works for me. Could you please post a mini sample code to reproduce the issue?

cyanglaz avatar Jul 31 '19 16:07 cyanglaz

@cyanglaz I noticed this when we try to resize the gif. So what happening is, when we select gif file and apply height or width or imageQuality, the bitmap factory(in Android) compresses it, which causes loss of animation. It simply becomes an image. To achieve this, we need to split the frames from gif first, after that apply all resize factors(i.e. height/width/imageQuality) to that every frame(which is simply bitmap). Then again composite all frames to create a gif. I think this would be the solution to this, please correct me if I'm wrong or there is any better solution available.

AmolGangadhare avatar Aug 02 '19 13:08 AmolGangadhare

@AmolGangadhare Yes it is the right solution! We are doing the same thing on iOS already. Do you want to work on this and put up a PR for it?

cyanglaz avatar Aug 02 '19 16:08 cyanglaz

@cyanglaz i would like to do it. I'll keep you updated with same.

AmolGangadhare avatar Aug 02 '19 18:08 AmolGangadhare

@AmolGangadhare Great! Thanks!

cyanglaz avatar Aug 02 '19 19:08 cyanglaz

@cyanglaz Sorry for the late response. I've made the changes for gif compression. But there are some important things needs to consider. I did some research and have some finding: (As android doesn't have any built-in things to compress (encode and decode) gif, everything needs to be done manually. I've referred some OS resources to encode and decode gif)

  1. I have gone through several gif tries and found that 99% of cases the image compression was not working for imageQuality factor as the frames were of png. They can be resized only on height and width.
  2. Even if we apply imageQuality factor, that makes operation extremely slow(depending upon the gif) as everything is going to be a manual process and the plugin doesn't have any additional activity to make user interactive while processing.

I've not made a PR yet as there is a visible lag in processing, I'm trying to further optimize it. You can refer to my repo (https://github.com/AmolGangadhare/plugins) for the changes I made. Any inputs from you will be much more helpful.

Thanks

AmolGangadhare avatar Aug 27 '19 10:08 AmolGangadhare

Un-assign myself from this issue as I don't have cycles to actively working on it.

cyanglaz avatar Mar 12 '20 18:03 cyanglaz

Would it be possible to just not attempt to resize or change quality if the selected image is a gif? That way I would not have to pull in an additional library just for resizing.

ozzy1873 avatar Mar 15 '20 16:03 ozzy1873

This function has been added in a recent PR. It would be great if the community could help to test it:

dependency_overrides:
  image_picker:
    git:
      url: https://github.com/ened/plugins.git
      ref: image_picker_gif
      path: packages/image_picker/image_picker

ened avatar Jun 08 '20 20:06 ened

Hi @cyanglaz @ened I tried to reproduce with the latest image_picker: ^0.7.0-nullsafety, Specifying maxWidth and maxHeight, quality doesn't lose animation when picking gifs tried different gifs to be sure.

code sample
// Copyright 2019 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// ignore_for_file: public_member_api_docs

import 'dart:async';
import 'dart:io';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/basic.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:image_picker/image_picker.dart';
import 'package:video_player/video_player.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Image Picker Demo',
      home: MyHomePage(title: 'Image Picker Example'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, this.title}) : super(key: key);

  final String? title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  PickedFile? _imageFile;
  dynamic _pickImageError;
  bool isVideo = false;
  VideoPlayerController? _controller;
  VideoPlayerController? _toBeDisposed;
  String? _retrieveDataError;

  final ImagePicker _picker = ImagePicker();
  final TextEditingController maxWidthController = TextEditingController();
  final TextEditingController maxHeightController = TextEditingController();
  final TextEditingController qualityController = TextEditingController();

  Future<void> _playVideo(PickedFile? file) async {
    if (file != null && mounted) {
      await _disposeVideoController();
      late VideoPlayerController controller;
      if (kIsWeb) {
        controller = VideoPlayerController.network(file.path);
      } else {
        controller = VideoPlayerController.file(File(file.path));
      }
      _controller = controller;
      // In web, most browsers won't honor a programmatic call to .play
      // if the video has a sound track (and is not muted).
      // Mute the video so it auto-plays in web!
      // This is not needed if the call to .play is the result of user
      // interaction (clicking on a "play" button, for example).
      final double volume = kIsWeb ? 0.0 : 1.0;
      await controller.setVolume(volume);
      await controller.initialize();
      await controller.setLooping(true);
      await controller.play();
      setState(() {});
    }
  }

  void _onImageButtonPressed(ImageSource source,
      {BuildContext? context}) async {
    if (_controller != null) {
      await _controller!.setVolume(0.0);
    }
    if (isVideo) {
      final PickedFile? file = await _picker.getVideo(
          source: source, maxDuration: const Duration(seconds: 10));
      await _playVideo(file);
    } else {
      await _displayPickImageDialog(context!,
          (double? maxWidth, double? maxHeight, int? quality) async {
        try {
          final pickedFile = await _picker.getImage(
            source: source,
            maxWidth: maxWidth,
            maxHeight: maxHeight,
            imageQuality: quality,
          );
          setState(() {
            _imageFile = pickedFile;
          });
        } catch (e) {
          setState(() {
            _pickImageError = e;
          });
        }
      });
    }
  }

  @override
  void deactivate() {
    if (_controller != null) {
      _controller!.setVolume(0.0);
      _controller!.pause();
    }
    super.deactivate();
  }

  @override
  void dispose() {
    _disposeVideoController();
    maxWidthController.dispose();
    maxHeightController.dispose();
    qualityController.dispose();
    super.dispose();
  }

  Future<void> _disposeVideoController() async {
    if (_toBeDisposed != null) {
      await _toBeDisposed!.dispose();
    }
    _toBeDisposed = _controller;
    _controller = null;
  }

  Widget _previewVideo() {
    final Text? retrieveError = _getRetrieveErrorWidget();
    if (retrieveError != null) {
      return retrieveError;
    }
    if (_controller == null) {
      return const Text(
        'You have not yet picked a video',
        textAlign: TextAlign.center,
      );
    }
    return Padding(
      padding: const EdgeInsets.all(10.0),
      child: AspectRatioVideo(_controller),
    );
  }

  Widget _previewImage() {
    final Text? retrieveError = _getRetrieveErrorWidget();
    if (retrieveError != null) {
      return retrieveError;
    }
    if (_imageFile != null) {
      if (kIsWeb) {
        // Why network?
        // See https://pub.dev/packages/image_picker#getting-ready-for-the-web-platform
        return Image.network(_imageFile!.path);
      } else {
        return Semantics(
            child: Image.file(File(_imageFile!.path)),
            label: 'image_picker_example_picked_image');
      }
    } else if (_pickImageError != null) {
      return Text(
        'Pick image error: $_pickImageError',
        textAlign: TextAlign.center,
      );
    } else {
      return const Text(
        'You have not yet picked an image.',
        textAlign: TextAlign.center,
      );
    }
  }

  Future<void> retrieveLostData() async {
    final LostData response = await _picker.getLostData();
    if (response.isEmpty) {
      return;
    }
    if (response.file != null) {
      if (response.type == RetrieveType.video) {
        isVideo = true;
        await _playVideo(response.file);
      } else {
        isVideo = false;
        setState(() {
          _imageFile = response.file;
        });
      }
    } else {
      _retrieveDataError = response.exception!.code;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title!),
      ),
      body: Center(
        child: !kIsWeb && defaultTargetPlatform == TargetPlatform.android
            ? FutureBuilder<void>(
                future: retrieveLostData(),
                builder: (BuildContext context, AsyncSnapshot<void> snapshot) {
                  switch (snapshot.connectionState) {
                    case ConnectionState.none:
                    case ConnectionState.waiting:
                      return const Text(
                        'You have not yet picked an image.',
                        textAlign: TextAlign.center,
                      );
                    case ConnectionState.done:
                      return isVideo ? _previewVideo() : _previewImage();
                    default:
                      if (snapshot.hasError) {
                        return Text(
                          'Pick image/video error: ${snapshot.error}}',
                          textAlign: TextAlign.center,
                        );
                      } else {
                        return const Text(
                          'You have not yet picked an image.',
                          textAlign: TextAlign.center,
                        );
                      }
                  }
                },
              )
            : (isVideo ? _previewVideo() : _previewImage()),
      ),
      floatingActionButton: Column(
        mainAxisAlignment: MainAxisAlignment.end,
        children: <Widget>[
          Semantics(
            label: 'image_picker_example_from_gallery',
            child: FloatingActionButton(
              onPressed: () {
                isVideo = false;
                _onImageButtonPressed(ImageSource.gallery, context: context);
              },
              heroTag: 'image0',
              tooltip: 'Pick Image from gallery',
              child: const Icon(Icons.photo_library),
            ),
          ),
          Padding(
            padding: const EdgeInsets.only(top: 16.0),
            child: FloatingActionButton(
              onPressed: () {
                isVideo = false;
                _onImageButtonPressed(ImageSource.camera, context: context);
              },
              heroTag: 'image1',
              tooltip: 'Take a Photo',
              child: const Icon(Icons.camera_alt),
            ),
          ),
          Padding(
            padding: const EdgeInsets.only(top: 16.0),
            child: FloatingActionButton(
              backgroundColor: Colors.red,
              onPressed: () {
                isVideo = true;
                _onImageButtonPressed(ImageSource.gallery);
              },
              heroTag: 'video0',
              tooltip: 'Pick Video from gallery',
              child: const Icon(Icons.video_library),
            ),
          ),
          Padding(
            padding: const EdgeInsets.only(top: 16.0),
            child: FloatingActionButton(
              backgroundColor: Colors.red,
              onPressed: () {
                isVideo = true;
                _onImageButtonPressed(ImageSource.camera);
              },
              heroTag: 'video1',
              tooltip: 'Take a Video',
              child: const Icon(Icons.videocam),
            ),
          ),
        ],
      ),
    );
  }

  Text? _getRetrieveErrorWidget() {
    if (_retrieveDataError != null) {
      final Text result = Text(_retrieveDataError!);
      _retrieveDataError = null;
      return result;
    }
    return null;
  }

  Future<void> _displayPickImageDialog(
      BuildContext context, OnPickImageCallback onPick) async {
    return showDialog(
        context: context,
        builder: (context) {
          return AlertDialog(
            title: Text('Add optional parameters'),
            content: Column(
              children: <Widget>[
                TextField(
                  controller: maxWidthController,
                  keyboardType: TextInputType.numberWithOptions(decimal: true),
                  decoration:
                      InputDecoration(hintText: "Enter maxWidth if desired"),
                ),
                TextField(
                  controller: maxHeightController,
                  keyboardType: TextInputType.numberWithOptions(decimal: true),
                  decoration:
                      InputDecoration(hintText: "Enter maxHeight if desired"),
                ),
                TextField(
                  controller: qualityController,
                  keyboardType: TextInputType.number,
                  decoration:
                      InputDecoration(hintText: "Enter quality if desired"),
                ),
              ],
            ),
            actions: <Widget>[
              TextButton(
                child: const Text('CANCEL'),
                onPressed: () {
                  Navigator.of(context).pop();
                },
              ),
              TextButton(
                  child: const Text('PICK'),
                  onPressed: () {
                    double? width = maxWidthController.text.isNotEmpty
                        ? double.parse(maxWidthController.text)
                        : null;
                    double? height = maxHeightController.text.isNotEmpty
                        ? double.parse(maxHeightController.text)
                        : null;
                    int? quality = qualityController.text.isNotEmpty
                        ? int.parse(qualityController.text)
                        : null;
                    onPick(width, height, quality);
                    Navigator.of(context).pop();
                  }),
            ],
          );
        });
  }
}

typedef void OnPickImageCallback(
    double? maxWidth, double? maxHeight, int? quality);

class AspectRatioVideo extends StatefulWidget {
  AspectRatioVideo(this.controller);

  final VideoPlayerController? controller;

  @override
  AspectRatioVideoState createState() => AspectRatioVideoState();
}

class AspectRatioVideoState extends State<AspectRatioVideo> {
  VideoPlayerController? get controller => widget.controller;
  bool initialized = false;

  void _onVideoControllerUpdate() {
    if (!mounted) {
      return;
    }
    if (initialized != controller!.value.isInitialized) {
      initialized = controller!.value.isInitialized;
      setState(() {});
    }
  }

  @override
  void initState() {
    super.initState();
    controller!.addListener(_onVideoControllerUpdate);
  }

  @override
  void dispose() {
    controller!.removeListener(_onVideoControllerUpdate);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    if (initialized) {
      return Center(
        child: AspectRatio(
          aspectRatio: controller!.value.aspectRatio,
          child: VideoPlayer(controller!),
        ),
      );
    } else {
      return Container();
    }
  }
}

tumblr_pw4o6aq51K1tuk9mgo1_500.gif.zip

flutter doctor -v
[✓] Flutter (Channel master, 1.27.0-2.0.pre.77, on macOS 11.2.1 20D74 darwin-x64, locale en-GB)
    • Flutter version 1.27.0-2.0.pre.77 at /Users/tahatesser/Code/flutter_master
    • Framework revision 9296a527b3 (10 hours ago), 2021-02-11 18:33:24 -0800
    • Engine revision cdc49c575b
    • Dart version 2.13.0 (build 2.13.0-25.0.dev)
[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.
[!] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
[✓] VS Code (version 1.53.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.19.0
[✓] Connected device (3 available)
    • Taha’s iPhone (mobile) • e534bcc711c9a011aa892eb51cdb60f40b3acddb • ios            • iOS 10.3.3
    • macOS (desktop)        • macos                                    • darwin-x64     • macOS 11.2.1 20D74 darwin-x64
    • Chrome (web)           • chrome                                   • web-javascript • Google Chrome 88.0.4324.150
! Doctor found issues in 2 categories.

Can you please some example gif that reproduces this and steps if needed? Thank you

TahaTesser avatar Feb 12 '21 13:02 TahaTesser

@TahaTesser the issue appeared on Android, I believe.

ened avatar Feb 16 '21 09:02 ened

Hi @ened Thanks so much, Android slipped from my mind, I can reproduce it on Android using image_picker: ^0.7.0-nullsafety

code sample
// Copyright 2019 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// ignore_for_file: public_member_api_docs

import 'dart:async';
import 'dart:io';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/basic.dart';
import 'package:flutter/src/widgets/container.dart';
import 'package:image_picker/image_picker.dart';
import 'package:video_player/video_player.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Image Picker Demo',
      home: MyHomePage(title: 'Image Picker Example'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, this.title}) : super(key: key);

  final String? title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  PickedFile? _imageFile;
  dynamic _pickImageError;
  bool isVideo = false;
  VideoPlayerController? _controller;
  VideoPlayerController? _toBeDisposed;
  String? _retrieveDataError;

  final ImagePicker _picker = ImagePicker();
  final TextEditingController maxWidthController = TextEditingController();
  final TextEditingController maxHeightController = TextEditingController();
  final TextEditingController qualityController = TextEditingController();

  Future<void> _playVideo(PickedFile? file) async {
    if (file != null && mounted) {
      await _disposeVideoController();
      late VideoPlayerController controller;
      if (kIsWeb) {
        controller = VideoPlayerController.network(file.path);
      } else {
        controller = VideoPlayerController.file(File(file.path));
      }
      _controller = controller;
      // In web, most browsers won't honor a programmatic call to .play
      // if the video has a sound track (and is not muted).
      // Mute the video so it auto-plays in web!
      // This is not needed if the call to .play is the result of user
      // interaction (clicking on a "play" button, for example).
      final double volume = kIsWeb ? 0.0 : 1.0;
      await controller.setVolume(volume);
      await controller.initialize();
      await controller.setLooping(true);
      await controller.play();
      setState(() {});
    }
  }

  void _onImageButtonPressed(ImageSource source,
      {BuildContext? context}) async {
    if (_controller != null) {
      await _controller!.setVolume(0.0);
    }
    if (isVideo) {
      final PickedFile? file = await _picker.getVideo(
          source: source, maxDuration: const Duration(seconds: 10));
      await _playVideo(file);
    } else {
      await _displayPickImageDialog(context!,
          (double? maxWidth, double? maxHeight, int? quality) async {
        try {
          final pickedFile = await _picker.getImage(
            source: source,
            maxWidth: maxWidth,
            maxHeight: maxHeight,
            imageQuality: quality,
          );
          setState(() {
            _imageFile = pickedFile;
          });
        } catch (e) {
          setState(() {
            _pickImageError = e;
          });
        }
      });
    }
  }

  @override
  void deactivate() {
    if (_controller != null) {
      _controller!.setVolume(0.0);
      _controller!.pause();
    }
    super.deactivate();
  }

  @override
  void dispose() {
    _disposeVideoController();
    maxWidthController.dispose();
    maxHeightController.dispose();
    qualityController.dispose();
    super.dispose();
  }

  Future<void> _disposeVideoController() async {
    if (_toBeDisposed != null) {
      await _toBeDisposed!.dispose();
    }
    _toBeDisposed = _controller;
    _controller = null;
  }

  Widget _previewVideo() {
    final Text? retrieveError = _getRetrieveErrorWidget();
    if (retrieveError != null) {
      return retrieveError;
    }
    if (_controller == null) {
      return const Text(
        'You have not yet picked a video',
        textAlign: TextAlign.center,
      );
    }
    return Padding(
      padding: const EdgeInsets.all(10.0),
      child: AspectRatioVideo(_controller),
    );
  }

  Widget _previewImage() {
    final Text? retrieveError = _getRetrieveErrorWidget();
    if (retrieveError != null) {
      return retrieveError;
    }
    if (_imageFile != null) {
      if (kIsWeb) {
        // Why network?
        // See https://pub.dev/packages/image_picker#getting-ready-for-the-web-platform
        return Image.network(_imageFile!.path);
      } else {
        return Semantics(
            child: Image.file(File(_imageFile!.path)),
            label: 'image_picker_example_picked_image');
      }
    } else if (_pickImageError != null) {
      return Text(
        'Pick image error: $_pickImageError',
        textAlign: TextAlign.center,
      );
    } else {
      return const Text(
        'You have not yet picked an image.',
        textAlign: TextAlign.center,
      );
    }
  }

  Future<void> retrieveLostData() async {
    final LostData response = await _picker.getLostData();
    if (response.isEmpty) {
      return;
    }
    if (response.file != null) {
      if (response.type == RetrieveType.video) {
        isVideo = true;
        await _playVideo(response.file);
      } else {
        isVideo = false;
        setState(() {
          _imageFile = response.file;
        });
      }
    } else {
      _retrieveDataError = response.exception!.code;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title!),
      ),
      body: Center(
        child: !kIsWeb && defaultTargetPlatform == TargetPlatform.android
            ? FutureBuilder<void>(
                future: retrieveLostData(),
                builder: (BuildContext context, AsyncSnapshot<void> snapshot) {
                  switch (snapshot.connectionState) {
                    case ConnectionState.none:
                    case ConnectionState.waiting:
                      return const Text(
                        'You have not yet picked an image.',
                        textAlign: TextAlign.center,
                      );
                    case ConnectionState.done:
                      return isVideo ? _previewVideo() : _previewImage();
                    default:
                      if (snapshot.hasError) {
                        return Text(
                          'Pick image/video error: ${snapshot.error}}',
                          textAlign: TextAlign.center,
                        );
                      } else {
                        return const Text(
                          'You have not yet picked an image.',
                          textAlign: TextAlign.center,
                        );
                      }
                  }
                },
              )
            : (isVideo ? _previewVideo() : _previewImage()),
      ),
      floatingActionButton: Column(
        mainAxisAlignment: MainAxisAlignment.end,
        children: <Widget>[
          Semantics(
            label: 'image_picker_example_from_gallery',
            child: FloatingActionButton(
              onPressed: () {
                isVideo = false;
                _onImageButtonPressed(ImageSource.gallery, context: context);
              },
              heroTag: 'image0',
              tooltip: 'Pick Image from gallery',
              child: const Icon(Icons.photo_library),
            ),
          ),
          Padding(
            padding: const EdgeInsets.only(top: 16.0),
            child: FloatingActionButton(
              onPressed: () {
                isVideo = false;
                _onImageButtonPressed(ImageSource.camera, context: context);
              },
              heroTag: 'image1',
              tooltip: 'Take a Photo',
              child: const Icon(Icons.camera_alt),
            ),
          ),
          Padding(
            padding: const EdgeInsets.only(top: 16.0),
            child: FloatingActionButton(
              backgroundColor: Colors.red,
              onPressed: () {
                isVideo = true;
                _onImageButtonPressed(ImageSource.gallery);
              },
              heroTag: 'video0',
              tooltip: 'Pick Video from gallery',
              child: const Icon(Icons.video_library),
            ),
          ),
          Padding(
            padding: const EdgeInsets.only(top: 16.0),
            child: FloatingActionButton(
              backgroundColor: Colors.red,
              onPressed: () {
                isVideo = true;
                _onImageButtonPressed(ImageSource.camera);
              },
              heroTag: 'video1',
              tooltip: 'Take a Video',
              child: const Icon(Icons.videocam),
            ),
          ),
        ],
      ),
    );
  }

  Text? _getRetrieveErrorWidget() {
    if (_retrieveDataError != null) {
      final Text result = Text(_retrieveDataError!);
      _retrieveDataError = null;
      return result;
    }
    return null;
  }

  Future<void> _displayPickImageDialog(
      BuildContext context, OnPickImageCallback onPick) async {
    return showDialog(
        context: context,
        builder: (context) {
          return AlertDialog(
            title: Text('Add optional parameters'),
            content: Column(
              children: <Widget>[
                TextField(
                  controller: maxWidthController,
                  keyboardType: TextInputType.numberWithOptions(decimal: true),
                  decoration:
                      InputDecoration(hintText: "Enter maxWidth if desired"),
                ),
                TextField(
                  controller: maxHeightController,
                  keyboardType: TextInputType.numberWithOptions(decimal: true),
                  decoration:
                      InputDecoration(hintText: "Enter maxHeight if desired"),
                ),
                TextField(
                  controller: qualityController,
                  keyboardType: TextInputType.number,
                  decoration:
                      InputDecoration(hintText: "Enter quality if desired"),
                ),
              ],
            ),
            actions: <Widget>[
              TextButton(
                child: const Text('CANCEL'),
                onPressed: () {
                  Navigator.of(context).pop();
                },
              ),
              TextButton(
                  child: const Text('PICK'),
                  onPressed: () {
                    double? width = maxWidthController.text.isNotEmpty
                        ? double.parse(maxWidthController.text)
                        : null;
                    double? height = maxHeightController.text.isNotEmpty
                        ? double.parse(maxHeightController.text)
                        : null;
                    int? quality = qualityController.text.isNotEmpty
                        ? int.parse(qualityController.text)
                        : null;
                    onPick(width, height, quality);
                    Navigator.of(context).pop();
                  }),
            ],
          );
        });
  }
}

typedef void OnPickImageCallback(
    double? maxWidth, double? maxHeight, int? quality);

class AspectRatioVideo extends StatefulWidget {
  AspectRatioVideo(this.controller);

  final VideoPlayerController? controller;

  @override
  AspectRatioVideoState createState() => AspectRatioVideoState();
}

class AspectRatioVideoState extends State<AspectRatioVideo> {
  VideoPlayerController? get controller => widget.controller;
  bool initialized = false;

  void _onVideoControllerUpdate() {
    if (!mounted) {
      return;
    }
    if (initialized != controller!.value.isInitialized) {
      initialized = controller!.value.isInitialized;
      setState(() {});
    }
  }

  @override
  void initState() {
    super.initState();
    controller!.addListener(_onVideoControllerUpdate);
  }

  @override
  void dispose() {
    controller!.removeListener(_onVideoControllerUpdate);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    if (initialized) {
      return Center(
        child: AspectRatio(
          aspectRatio: controller!.value.aspectRatio,
          child: VideoPlayer(controller!),
        ),
      );
    } else {
      return Container();
    }
  }
}

logs
trace","CFBundleURLSchemes":["idea"]}],"CFBundleIdentifier":"com.google.android.studio","LSApplicationCategoryType":"publ
ic.app-category.developer-tools","CFBundleSignature":"????","LSMinimumSystemVersion":"10.8","NSDocumentsFolderUsageDescri
ption":"An application in Android Studio requests access to the user's Documents
folder.","NSDownloadsFolderUsageDescription":"An application in Android Studio requests access to the user's Downloads
folder.","NSNetworkVolumesUsageDescription":"An application in Android Studio requests access to files on a network
volume.","CFBundleGetInfoString":"Android Studio 4.1, build AI-201.8743.12.41.7042882. Copyright JetBrains s.r.o., (c)
2000-2020","NSRemovableVolumesUsageDescription":"An application in Android Studio requests access to files on a removable
volume."}
[  +14 ms] executing: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java -version
[  +92 ms] Exit code 0 from: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java -version
[        ] openjdk version "1.8.0_242-release"
           OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
           OpenJDK 64-Bit Server VM (build 25.242-b3-6915495, mixed mode)
[   +2 ms] executing:
[/Users/tahatesser/AndroidStudioProjects/plugins/packages/image_picker/image_picker/example/android/]
/Users/tahatesser/AndroidStudioProjects/plugins/packages/image_picker/image_picker/example/android/gradlew -Pverbose=true
-Ptarget-platform=android-arm64
-Ptarget=/Users/tahatesser/AndroidStudioProjects/plugins/packages/image_picker/image_picker/example/lib/main.dart
-Pdart-defines=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ== -Pdart-obfuscation=false -Ptrack-widget-creation=true
-Ptree-shake-icons=false -Pfilesystem-scheme=org-dartlang-root assembleDebug
[+1019 ms] Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --status for details
[+5288 ms] > Configure project :app
[        ] WARNING: The option setting 'android.enableUnitTestBinaryResources=true' is experimental and unsupported.
[        ] The current default is 'false'.
[+2002 ms] > Configure project :flutter_plugin_android_lifecycle
[        ] WARNING: The option setting 'android.enableUnitTestBinaryResources=true' is experimental and unsupported.
[        ] The current default is 'false'.
[ +194 ms] > Configure project :image_picker
[        ] WARNING: The option setting 'android.enableUnitTestBinaryResources=true' is experimental and unsupported.
[        ] The current default is 'false'.
[ +300 ms] > Configure project :integration_test
[        ] WARNING: The option setting 'android.enableUnitTestBinaryResources=true' is experimental and unsupported.
[        ] The current default is 'false'.
[ +198 ms] > Configure project :video_player
[        ] WARNING: The option setting 'android.enableUnitTestBinaryResources=true' is experimental and unsupported.
[        ] The current default is 'false'.
[+4301 ms] > Transform kxml2.jar (net.sf.kxml:kxml2:2.3.0) with JetifyTransform
[        ] > Transform javawriter.jar (com.squareup:javawriter:2.1.1) with JetifyTransform
[        ] > Transform hamcrest-library.jar (org.hamcrest:hamcrest-library:1.3) with JetifyTransform
[        ] > Transform jsr305.jar (com.google.code.findbugs:jsr305:3.0.2) with JetifyTransform
[        ] > Transform hamcrest-core.jar (org.hamcrest:hamcrest-core:1.3) with JetifyTransform
[        ] > Transform javax.inject.jar (javax.inject:javax.inject:1) with JetifyTransform
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
JetifyTransform
[        ] > Transform hamcrest-integration.jar (org.hamcrest:hamcrest-integration:1.3) with JetifyTransform
[        ] > Transform javax.inject.jar (javax.inject:javax.inject:1) with IdentityTransform
[        ] > Transform jsr305.jar (com.google.code.findbugs:jsr305:3.0.2) with IdentityTransform
[        ] > Transform hamcrest-core.jar (org.hamcrest:hamcrest-core:1.3) with IdentityTransform
[        ] > Transform hamcrest-library.jar (org.hamcrest:hamcrest-library:1.3) with IdentityTransform
[        ] > Transform kxml2.jar (net.sf.kxml:kxml2:2.3.0) with IdentityTransform
[        ] > Transform hamcrest-integration.jar (org.hamcrest:hamcrest-integration:1.3) with IdentityTransform
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
ExtractAarTransform
[        ] > Transform javawriter.jar (com.squareup:javawriter:2.1.1) with IdentityTransform
[        ] > Transform annotation.jar (androidx.annotation:annotation:1.1.0) with JetifyTransform
[  +96 ms] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with
JetifyTransform
[        ] > Transform annotation.jar (androidx.annotation:annotation:1.1.0) with IdentityTransform
[        ] > Transform collection.jar (androidx.collection:collection:1.1.0) with JetifyTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with
ExtractAarTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with JetifyTransform
[        ] > Transform collection.jar (androidx.collection:collection:1.1.0) with IdentityTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with JetifyTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with JetifyTransform
[        ] > Transform core-common.jar (androidx.arch.core:core-common:2.1.0) with JetifyTransform
[        ] > Transform core-common.jar (androidx.arch.core:core-common:2.1.0) with IdentityTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with ExtractAarTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with
JetifyTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with ExtractAarTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with ExtractAarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with JetifyTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with
ExtractAarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with ExtractAarTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with
AarCompileClassesTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with AarCompileClassesTransform
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
AarCompileClassesTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with AarCompileClassesTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with
AarCompileClassesTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with
AarCompileClassesTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with
AarCompileClassesTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with JetifyTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with JetifyTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with JetifyTransform
[        ] > Transform lifecycle-common.jar (androidx.lifecycle:lifecycle-common:2.2.0) with JetifyTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with ExtractAarTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with ExtractAarTransform
[        ] > Transform lifecycle-common.jar (androidx.lifecycle:lifecycle-common:2.2.0) with IdentityTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with ExtractAarTransform
[        ] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with JetifyTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with JetifyTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with JetifyTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with JetifyTransform
[        ] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with ExtractAarTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with ExtractAarTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with ExtractAarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with JetifyTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with ExtractAarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with ExtractAarTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with AarCompileClassesTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with AarCompileClassesTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with AarCompileClassesTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with AarCompileClassesTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with AarCompileClassesTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with JetifyTransform
[        ] > Transform lifecycle-common-java8.jar (androidx.lifecycle:lifecycle-common-java8:2.2.0) with JetifyTransform
[   +9 ms] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with AarCompileClassesTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with AarCompileClassesTransform
[        ] > Transform lifecycle-common-java8.jar (androidx.lifecycle:lifecycle-common-java8:2.2.0) with
IdentityTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with ExtractAarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with JetifyTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with JetifyTransform
[        ] > Transform junit.jar (junit:junit:4.12) with JetifyTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with ExtractAarTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with ExtractAarTransform
[        ] > Transform junit.jar (junit:junit:4.12) with IdentityTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with AarCompileClassesTransform
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
AarTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with AarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with AarCompileClassesTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with AarTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with AarTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with AarTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with AarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with AarTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with AarTransform
[        ] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with AarTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with AarTransform
[  +16 ms] > Transform rules.aar (androidx.test:rules:1.2.0) with AarCompileClassesTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with AarTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with AarTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with AarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with AarTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with AarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with AarTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with AarTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with AarCompileClassesTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with AarTransform
[ +351 ms] > Transform flutter_embedding_debug.jar
(io.flutter:flutter_embedding_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f) with JetifyTransform
[+1698 ms] > Task :app:compileFlutterBuildDebug
[        ] [ +132 ms] executing: sysctl hw.optional.arm64
[        ] [  +35 ms] Exit code 1 from: sysctl hw.optional.arm64
[        ] [   +1 ms] sysctl: unknown oid 'hw.optional.arm64'
[        ] [  +19 ms] executing: [/Users/tahatesser/Code/flutter_master/] git -c log.showSignature=false log -n 1
--pretty=format:%H
[        ] [  +29 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] [        ] 23e41734e5826ae908fe880ac0f6c44d68f3acde
[        ] [   +1 ms] executing: [/Users/tahatesser/Code/flutter_master/] git tag --points-at
23e41734e5826ae908fe880ac0f6c44d68f3acde
[        ] [ +118 ms] Exit code 0 from: git tag --points-at 23e41734e5826ae908fe880ac0f6c44d68f3acde
[        ] [   +2 ms] executing: [/Users/tahatesser/Code/flutter_master/] git describe --match *.*.* --long --tags
23e41734e5826ae908fe880ac0f6c44d68f3acde
[        ] [  +67 ms] Exit code 0 from: git describe --match *.*.* --long --tags 23e41734e5826ae908fe880ac0f6c44d68f3acde
[        ] [        ] 1.27.0-4.0.pre-49-g23e41734e5
[        ] [  +57 ms] executing: [/Users/tahatesser/Code/flutter_master/] git rev-parse --abbrev-ref --symbolic @{u}
[        ] [  +18 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] [        ] origin/master
[        ] [        ] executing: [/Users/tahatesser/Code/flutter_master/] git ls-remote --get-url origin
[        ] [  +16 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] [        ] https://github.com/flutter/flutter.git
[        ] [  +74 ms] executing: [/Users/tahatesser/Code/flutter_master/] git rev-parse --abbrev-ref HEAD
[  +10 ms] [  +20 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] [        ] master
[        ] [   +8 ms] executing: sw_vers -productName
[        ] [  +18 ms] Exit code 0 from: sw_vers -productName
[        ] [        ] macOS
[        ] [        ] executing: sw_vers -productVersion
[        ] [  +20 ms] Exit code 0 from: sw_vers -productVersion
[        ] [        ] 11.2.1
[        ] [        ] executing: sw_vers -buildVersion
[        ] [  +18 ms] Exit code 0 from: sw_vers -buildVersion
[        ] [        ] 20D74
[        ] [  +66 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [   +5 ms] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [  +55 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] [        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] [        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[        ] [  +93 ms] Initializing file store
[        ] [  +25 ms] Skipping target: gen_localizations
[        ] [   +7 ms] kernel_snapshot: Starting due to {}
[        ] [  +24 ms] /Users/tahatesser/Code/flutter_master/bin/cache/dart-sdk/bin/dart --disable-dart-dev
/Users/tahatesser/Code/flutter_master/bin/cache/artifacts/engine/darwin-x64/frontend_server.dart.snapshot --sdk-root
/Users/tahatesser/Code/flutter_master/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --target=flutter
--no-print-incremental-dependencies -DFLUTTER_WEB_AUTO_DETECT=true -Ddart.vm.profile=false -Ddart.vm.product=false
--enable-asserts --track-widget-creation --no-link-platform --packages
/Users/tahatesser/AndroidStudioProjects/plugins/packages/image_picker/image_picker/example/.dart_tool/package_config.json
--output-dill
/Users/tahatesser/AndroidStudioProjects/plugins/packages/image_picker/image_picker/example/.dart_tool/flutter_build/6fa86
2466fddb9dd6424fb2746735e7d/app.dill --depfile
/Users/tahatesser/AndroidStudioProjects/plugins/packages/image_picker/image_picker/example/.dart_tool/flutter_build/6fa86
2466fddb9dd6424fb2746735e7d/kernel_snapshot.d package:image_picker_example/main.dart
[+3082 ms] > Transform x86_debug.jar (io.flutter:x86_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f) with
JetifyTransform
[ +895 ms] > Transform x86_64_debug.jar (io.flutter:x86_64_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f) with
JetifyTransform
[+2704 ms] > Transform arm64_v8a_debug.jar (io.flutter:arm64_v8a_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f)
with JetifyTransform
[ +796 ms] > Task :app:compileFlutterBuildDebug
[        ] [+8171 ms] kernel_snapshot: Complete
[ +400 ms] [ +400 ms] debug_android_application: Starting due to {}
[ +297 ms] [ +282 ms] debug_android_application: Complete
[ +502 ms] [ +477 ms] Persisting file store
[        ] [   +6 ms] Done persisting file store
[        ] [   +4 ms] build succeeded.
[        ] [  +11 ms] "flutter assemble" took 9,586ms.
[ +200 ms] [ +225 ms] ensureAnalyticsSent: 221ms
[        ] [   +1 ms] Running shutdown hooks
[        ] [        ] Shutdown hooks complete
[        ] [        ] exiting with code 0
[ +196 ms] > Transform x86_64_debug.jar (io.flutter:x86_64_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f) with
IdentityTransform
[        ] > Transform flutter_embedding_debug.jar
(io.flutter:flutter_embedding_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f) with IdentityTransform
[        ] > Transform x86_debug.jar (io.flutter:x86_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f) with
IdentityTransform
[        ] > Transform arm64_v8a_debug.jar (io.flutter:arm64_v8a_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f)
with IdentityTransform
[ +103 ms] > Task :app:packLibsflutterBuildDebug
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
AarTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with AarTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with AarTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with AarTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with AarTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with AarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with AarTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with AarTransform
[        ] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with AarTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with AarTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with AarTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with AarTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with AarTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with AarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with AarTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with AarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with AarTransform
[   +6 ms] > Transform rules.aar (androidx.test:rules:1.2.0) with AarTransform
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
AarTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with AarTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with AarTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with AarTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with AarTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with JetifyTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
JetifyTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with AarTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with
ExtractAarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with AarTransform
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with JetifyTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
ExtractAarTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with JetifyTransform
[   +7 ms] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
JetifyTransform
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with ExtractAarTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with ExtractAarTransform
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
ExtractAarTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with AarTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with JetifyTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with AarTransform
[        ] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with ExtractAarTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
AarTransform
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
AarTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with AarTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with AarTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with AarTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with JetifyTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with AarTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
AarTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with AarTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with AarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with AarTransform
[  +11 ms] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with AarTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with ExtractAarTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with AarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with AarTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with AarTransform
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with AarTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with AarTransform
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with AarTransform
[        ] > Task :app:preBuild UP-TO-DATE
[        ] > Task :flutter_plugin_android_lifecycle:preBuild UP-TO-DATE
[        ] > Task :flutter_plugin_android_lifecycle:preDebugBuild UP-TO-DATE
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with AarTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with AarTransform
[        ] > Task :flutter_plugin_android_lifecycle:checkDebugManifest
[  +51 ms] > Task :flutter_plugin_android_lifecycle:processDebugManifest
[        ] > Task :image_picker:preBuild UP-TO-DATE
[        ] > Task :image_picker:preDebugBuild UP-TO-DATE
[        ] > Task :image_picker:checkDebugManifest
[        ] > Task :image_picker:processDebugManifest
[        ] > Task :integration_test:preBuild UP-TO-DATE
[        ] > Task :integration_test:preDebugBuild UP-TO-DATE
[        ] > Task :integration_test:checkDebugManifest
[  +98 ms] > Task :integration_test:processDebugManifest
[        ] > Task :video_player:preBuild UP-TO-DATE
[        ] > Task :video_player:preDebugBuild UP-TO-DATE
[        ] > Task :video_player:checkDebugManifest
[        ] > Task :video_player:processDebugManifest
[        ] > Task :app:preDebugBuild
[        ] > Task :flutter_plugin_android_lifecycle:compileDebugAidl NO-SOURCE
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with AarTransform
[        ] > Task :image_picker:compileDebugAidl NO-SOURCE
[  +98 ms] > Task :integration_test:compileDebugAidl NO-SOURCE
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with AarTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with AarTransform
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
AarTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with AarTransform
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
AarTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with AarTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with AarTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with AarTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with AarTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with AarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with AarTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
AarTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with AarTransform
[        ] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with AarTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with AarTransform
[   +8 ms] > Transform customview.aar (androidx.customview:customview:1.0.0) with AarTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with AarTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with AarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with AarTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with AarTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with AarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with AarTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with AarTransform
[        ] > Task :flutter_plugin_android_lifecycle:packageDebugRenderscript NO-SOURCE
[        ] > Task :image_picker:packageDebugRenderscript NO-SOURCE
[        ] > Task :integration_test:packageDebugRenderscript NO-SOURCE
[   +1 ms] > Task :video_player:compileDebugAidl NO-SOURCE
[        ] > Task :app:compileDebugAidl NO-SOURCE
[        ] > Task :video_player:packageDebugRenderscript NO-SOURCE
[        ] > Task :app:compileDebugRenderscript
[        ] > Task :app:checkDebugManifest
[        ] > Task :app:generateDebugBuildConfig
[        ] > Task :app:prepareLintJar
[        ] > Task :app:generateDebugSources
[        ] > Task :flutter_plugin_android_lifecycle:compileDebugRenderscript
[        ] > Task :flutter_plugin_android_lifecycle:generateDebugBuildConfig
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with LibrarySymbolTableTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with
LibrarySymbolTableTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with
LibrarySymbolTableTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with
LibrarySymbolTableTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with LibrarySymbolTableTransform
[   +9 ms] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with
LibrarySymbolTableTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with LibrarySymbolTableTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with
LibrarySymbolTableTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with LibrarySymbolTableTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with LibrarySymbolTableTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with LibrarySymbolTableTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with LibrarySymbolTableTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with LibrarySymbolTableTransform
[        ] > Task :flutter_plugin_android_lifecycle:generateDebugResValues
[        ] > Task :flutter_plugin_android_lifecycle:generateDebugResources
[        ] > Transform aapt2-osx.jar (com.android.tools.build:aapt2:3.3.0-5013011) with Aapt2Extractor
[        ] > Task :flutter_plugin_android_lifecycle:prepareLintJar
[  +69 ms] > Task :flutter_plugin_android_lifecycle:packageDebugResources
[ +199 ms] > Task :flutter_plugin_android_lifecycle:generateDebugRFile
[        ] > Task :flutter_plugin_android_lifecycle:generateDebugSources
[        ] > Task :flutter_plugin_android_lifecycle:javaPreCompileDebug
[+1399 ms] > Task :flutter_plugin_android_lifecycle:compileDebugJavaWithJavac
[        ] > Task :flutter_plugin_android_lifecycle:processDebugJavaRes NO-SOURCE
[        ] > Task :flutter_plugin_android_lifecycle:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with AarTransform
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with AarCompileClassesTransform
[        ] > Task :image_picker:generateDebugBuildConfig
[        ] > Task :image_picker:compileDebugRenderscript
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with LibrarySymbolTableTransform
[        ] > Task :image_picker:generateDebugResValues
[        ] > Task :image_picker:generateDebugResources
[  +98 ms] > Task :image_picker:packageDebugResources
[        ] > Task :image_picker:generateDebugRFile
[        ] > Task :image_picker:prepareLintJar
[        ] > Task :image_picker:generateDebugSources
[        ] > Task :image_picker:javaPreCompileDebug
[ +400 ms] > Task :image_picker:compileDebugJavaWithJavac
[        ] > Task :image_picker:processDebugJavaRes NO-SOURCE
[        ] > Task :image_picker:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug
[        ] > Transform animal-sniffer-annotations.jar (org.codehaus.mojo:animal-sniffer-annotations:1.18) with
JetifyTransform
[        ] > Transform j2objc-annotations.jar (com.google.j2objc:j2objc-annotations:1.3) with JetifyTransform
[        ] > Transform listenablefuture.jar (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava)
with JetifyTransform
[        ] > Transform failureaccess.jar (com.google.guava:failureaccess:1.0.1) with JetifyTransform
[        ] > Transform error_prone_annotations.jar (com.google.errorprone:error_prone_annotations:2.3.2) with
JetifyTransform
[        ] > Transform checker-compat-qual.jar (org.checkerframework:checker-compat-qual:2.5.5) with JetifyTransform
[        ] > Transform guava.jar (com.google.guava:guava:28.1-android) with JetifyTransform
[  +98 ms] > Task :integration_test:compileDebugRenderscript
[        ] > Transform animal-sniffer-annotations.jar (org.codehaus.mojo:animal-sniffer-annotations:1.18) with
IdentityTransform
[        ] > Transform j2objc-annotations.jar (com.google.j2objc:j2objc-annotations:1.3) with IdentityTransform
[        ] > Transform checker-compat-qual.jar (org.checkerframework:checker-compat-qual:2.5.5) with IdentityTransform
[        ] > Transform listenablefuture.jar (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava)
with IdentityTransform
[        ] > Transform failureaccess.jar (com.google.guava:failureaccess:1.0.1) with IdentityTransform
[        ] > Transform error_prone_annotations.jar (com.google.errorprone:error_prone_annotations:2.3.2) with
IdentityTransform
[        ] > Task :integration_test:generateDebugBuildConfig
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
LibrarySymbolTableTransform
[   +2 ms] > Transform monitor.aar (androidx.test:monitor:1.2.0) with LibrarySymbolTableTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with LibrarySymbolTableTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with LibrarySymbolTableTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with LibrarySymbolTableTransform
[        ] > Task :integration_test:generateDebugResValues
[        ] > Task :integration_test:generateDebugResources
[        ] > Transform guava.jar (com.google.guava:guava:28.1-android) with IdentityTransform
[        ] > Task :integration_test:packageDebugResources
[        ] > Task :integration_test:generateDebugRFile
[        ] > Task :integration_test:prepareLintJar
[        ] > Task :integration_test:generateDebugSources
[        ] > Task :integration_test:javaPreCompileDebug
[ +290 ms] > Task :integration_test:compileDebugJavaWithJavac
[        ] > Task :integration_test:processDebugJavaRes NO-SOURCE
[        ] > Task :integration_test:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
AarCompileClassesTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with AarTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with
AarCompileClassesTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
AarCompileClassesTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with
AarCompileClassesTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with
AarCompileClassesTransform
[   +3 ms] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with
AarCompileClassesTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
AarTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with AarTransform
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with AarTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with AarTransform
[        ] > Transform guava.jar (com.google.guava:guava:27.1-android) with JetifyTransform
[        ] > Task :video_player:generateDebugBuildConfig
[   +5 ms] > Transform guava.jar (com.google.guava:guava:27.1-android) with IdentityTransform
[        ] > Task :video_player:compileDebugRenderscript
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
LibrarySymbolTableTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with
LibrarySymbolTableTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with
LibrarySymbolTableTransform
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
LibrarySymbolTableTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with
LibrarySymbolTableTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with
LibrarySymbolTableTransform
[  +10 ms] > Task :video_player:generateDebugResValues
[        ] > Task :video_player:generateDebugResources
[        ] > Task :video_player:packageDebugResources
[        ] > Task :video_player:generateDebugRFile
[        ] > Task :video_player:prepareLintJar
[        ] > Task :video_player:generateDebugSources
[  +70 ms] > Task :video_player:javaPreCompileDebug
[ +499 ms] > Task :video_player:compileDebugJavaWithJavac
[        ] > Task :video_player:processDebugJavaRes NO-SOURCE
[        ] > Task :video_player:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug
[ +900 ms] > Task :app:javaPreCompileDebug
[        ] > Task :app:cleanMergeDebugAssets UP-TO-DATE
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
AarTransform
[ +101 ms] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with AarTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with AarTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with AarTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with AarTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with AarTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
AarTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with AarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with AarTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with AarTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with AarTransform
[        ] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with AarTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with AarTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with AarTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with AarTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with AarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with AarTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with AarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with AarTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with AarTransform
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with AarTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with AarTransform
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with AarTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with AarTransform
[        ] > Task :app:mergeDebugShaders
[        ] > Task :app:compileDebugShaders
[        ] > Task :app:generateDebugAssets
[        ] > Task :flutter_plugin_android_lifecycle:mergeDebugShaders
[        ] > Task :flutter_plugin_android_lifecycle:compileDebugShaders
[        ] > Task :flutter_plugin_android_lifecycle:generateDebugAssets
[        ] > Task :flutter_plugin_android_lifecycle:packageDebugAssets
[        ] > Task :image_picker:mergeDebugShaders
[        ] > Task :image_picker:compileDebugShaders
[        ] > Task :image_picker:generateDebugAssets
[   +7 ms] > Task :image_picker:packageDebugAssets
[        ] > Task :integration_test:mergeDebugShaders
[        ] > Task :integration_test:compileDebugShaders
[        ] > Task :integration_test:generateDebugAssets
[        ] > Task :integration_test:packageDebugAssets
[        ] > Task :video_player:mergeDebugShaders
[        ] > Task :video_player:compileDebugShaders
[        ] > Task :video_player:generateDebugAssets
[        ] > Task :video_player:packageDebugAssets
[        ] > Task :app:mergeDebugAssets
[ +281 ms] > Task :app:copyFlutterAssetsDebug
[        ] > Task :app:mainApkListPersistenceDebug
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
AarTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with AarTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with AarTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with AarTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with AarTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
AarTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with AarTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with AarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with AarTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with AarTransform
[        ] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with AarTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with AarTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with AarTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with AarTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with AarTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with AarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with AarTransform
[   +8 ms] > Transform runner.aar (androidx.test:runner:1.2.0) with AarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with AarTransform
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with AarTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with AarTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with AarTransform
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with AarTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with AarTransform
[        ] > Task :app:generateDebugResValues
[        ] > Task :app:generateDebugResources
[ +485 ms] > Task :app:mergeDebugResources
[        ] > Task :app:createDebugCompatibleScreenManifests
[ +104 ms] > Task :app:processDebugManifest
[ +298 ms] > Task :app:processDebugResources
[+1196 ms] > Task :app:compileDebugJavaWithJavac
[        ] > Task :app:compileDebugNdk NO-SOURCE
[        ] > Task :app:compileDebugSources
[        ] > Task :app:validateSigningDebug
[        ] > Task :app:signingConfigWriterDebug
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
AarTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with AarTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with AarTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with AarTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with AarTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with AarTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with AarTransform
[   +1 ms] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
AarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with AarTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with AarTransform
[        ] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with AarTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with AarTransform
[ +100 ms] > Transform customview.aar (androidx.customview:customview:1.0.0) with AarTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with AarTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with AarTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with AarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with AarTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with AarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with AarTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with AarTransform
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with AarTransform
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
AarTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with AarTransform
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
AarTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with AarTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with AarTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with AarTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with AarTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with AarTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with AarTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
AarTransform
[+1792 ms]
/Users/tahatesser/.gradle/caches/modules-2/files-2.1/io.flutter/flutter_embedding_debug/1.0.0-6993cb229b99e6771c6c6c2b884
ae006d8160a0f/ddbad8de6a62f88fafa5e8e4919b1a13f5ad2d43/flutter_embedding_debug-1.0.0-6993cb229b99e6771c6c6c2b884ae006d816
0a0f.jar: D8: Type `com.google.android.play.core.splitinstall.SplitInstallManagerFactory` was not found, it is required
for default or static interface methods desugaring of `void
io.flutter.embedding.engine.deferredcomponents.PlayStoreDeferredComponentManager.<init>(android.content.Context,
io.flutter.embedding.engine.FlutterJNI)`
[ +104 ms]
/Users/tahatesser/.gradle/caches/modules-2/files-2.1/io.flutter/flutter_embedding_debug/1.0.0-6993cb229b99e6771c6c6c2b884
ae006d8160a0f/ddbad8de6a62f88fafa5e8e4919b1a13f5ad2d43/flutter_embedding_debug-1.0.0-6993cb229b99e6771c6c6c2b884ae006d816
0a0f.jar: D8: Type `com.google.android.play.core.splitinstall.SplitInstallRequest` was not found, it is required for
default or static interface methods desugaring of `void
io.flutter.embedding.engine.deferredcomponents.PlayStoreDeferredComponentManager.installDeferredComponent(int,
java.lang.String)`
[ +895 ms]
/Users/tahatesser/.gradle/caches/modules-2/files-2.1/io.flutter/flutter_embedding_debug/1.0.0-6993cb229b99e6771c6c6c2b884
ae006d8160a0f/ddbad8de6a62f88fafa5e8e4919b1a13f5ad2d43/flutter_embedding_debug-1.0.0-6993cb229b99e6771c6c6c2b884ae006d816
0a0f.jar: D8: Type `com.google.android.play.core.splitcompat.SplitCompatApplication` was not found, it is required for
default or static interface methods desugaring of `void io.flutter.app.FlutterPlayStoreSplitApplication.onCreate()`
[ +203 ms]
/Users/tahatesser/.gradle/caches/modules-2/files-2.1/io.flutter/flutter_embedding_debug/1.0.0-6993cb229b99e6771c6c6c2b884
ae006d8160a0f/ddbad8de6a62f88fafa5e8e4919b1a13f5ad2d43/flutter_embedding_debug-1.0.0-6993cb229b99e6771c6c6c2b884ae006d816
0a0f.jar: D8: Type `android.view.WindowInsets$Type` was not found, it is required for default or static interface methods
desugaring of `android.view.WindowInsets
io.flutter.embedding.android.FlutterView.onApplyWindowInsets(android.view.WindowInsets)`
[        ]
/Users/tahatesser/.gradle/caches/modules-2/files-2.1/io.flutter/flutter_embedding_debug/1.0.0-6993cb229b99e6771c6c6c2b884
ae006d8160a0f/ddbad8de6a62f88fafa5e8e4919b1a13f5ad2d43/flutter_embedding_debug-1.0.0-6993cb229b99e6771c6c6c2b884ae006d816
0a0f.jar: D8: Type `android.view.WindowInsets$Type` was not found, it is required for default or static interface methods
desugaring of `android.view.WindowInsets io.flutter.view.FlutterView.onApplyWindowInsets(android.view.WindowInsets)`
[  +96 ms] D8: synthesized for lambda desugaring: Interface `com.google.android.play.core.tasks.OnSuccessListener` not
found. It's needed to make sure desugaring of
`io.flutter.embedding.engine.deferredcomponents.-$$Lambda$PlayStoreDeferredComponentManager$omduCs2FVXzWSeh_qx7q-N89fLE`
is correct. Desugaring will assume that this interface has no default method.
[        ] D8: synthesized for lambda desugaring: Interface `com.google.android.play.core.tasks.OnFailureListener` not
found. It's needed to make sure desugaring of
`io.flutter.embedding.engine.deferredcomponents.-$$Lambda$PlayStoreDeferredComponentManager$caXMJn3gSooh-8rU1uNn1IpLCi4`
is correct. Desugaring will assume that this interface has no default method.
[ +198 ms]
/Users/tahatesser/.gradle/caches/modules-2/files-2.1/io.flutter/flutter_embedding_debug/1.0.0-6993cb229b99e6771c6c6c2b884
ae006d8160a0f/ddbad8de6a62f88fafa5e8e4919b1a13f5ad2d43/flutter_embedding_debug-1.0.0-6993cb229b99e6771c6c6c2b884ae006d816
0a0f.jar: D8: Interface `com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener` not found. It's
needed to make sure desugaring of
`io.flutter.embedding.engine.deferredcomponents.PlayStoreDeferredComponentManager$FeatureInstallStateUpdatedListener` is
correct. Desugaring will assume that this interface has no default method.
[ +298 ms] > Task :app:transformClassesWithDexBuilderForDebug
[+1800 ms] > Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug
[+1199 ms] > Task :app:transformDexArchiveWithDexMergerForDebug
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with AarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with AarTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with AarTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with AarTransform
[        ] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with AarTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with AarTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with AarTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with AarTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with AarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with AarTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with AarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with AarTransform
[        ] > Transform animal-sniffer-annotations.jar (org.codehaus.mojo:animal-sniffer-annotations:1.18) with
IdentityTransform
[        ] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with AarTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with AarTransform
[        ] > Transform error_prone_annotations.jar (com.google.errorprone:error_prone_annotations:2.3.2) with
IdentityTransform
[        ] > Transform j2objc-annotations.jar (com.google.j2objc:j2objc-annotations:1.3) with IdentityTransform
[        ] > Transform checker-compat-qual.jar (org.checkerframework:checker-compat-qual:2.5.5) with IdentityTransform
[  +10 ms] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with AarTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with AarTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with AarTransform
[        ] > Transform listenablefuture.jar (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava)
with IdentityTransform
[        ] > Transform failureaccess.jar (com.google.guava:failureaccess:1.0.1) with IdentityTransform
[        ] > Transform javax.inject.jar (javax.inject:javax.inject:1) with IdentityTransform
[        ] > Transform javawriter.jar (com.squareup:javawriter:2.1.1) with IdentityTransform
[        ] > Transform kxml2.jar (net.sf.kxml:kxml2:2.3.0) with IdentityTransform
[        ] > Transform jsr305.jar (com.google.code.findbugs:jsr305:3.0.2) with IdentityTransform
[        ] > Transform hamcrest-core.jar (org.hamcrest:hamcrest-core:1.3) with IdentityTransform
[        ] > Transform hamcrest-library.jar (org.hamcrest:hamcrest-library:1.3) with IdentityTransform
[        ] > Transform hamcrest-integration.jar (org.hamcrest:hamcrest-integration:1.3) with IdentityTransform
[  +12 ms] > Transform guava.jar (com.google.guava:guava:28.1-android) with IdentityTransform
[        ] > Transform junit.jar (junit:junit:4.12) with IdentityTransform
[        ] > Transform annotation.jar (androidx.annotation:annotation:1.1.0) with IdentityTransform
[        ] > Transform collection.jar (androidx.collection:collection:1.1.0) with IdentityTransform
[        ] > Transform core-common.jar (androidx.arch.core:core-common:2.1.0) with IdentityTransform
[        ] > Transform espresso-idling-resource.aar (androidx.test.espresso:espresso-idling-resource:3.2.0) with
AarTransform
[        ] > Transform lifecycle-viewmodel.aar (androidx.lifecycle:lifecycle-viewmodel:2.1.0) with AarTransform
[        ] > Transform lifecycle-common.jar (androidx.lifecycle:lifecycle-common:2.2.0) with IdentityTransform
[        ] > Transform versionedparcelable.aar (androidx.versionedparcelable:versionedparcelable:1.1.0) with AarTransform
[        ] > Transform monitor.aar (androidx.test:monitor:1.2.0) with AarTransform
[        ] > Transform exoplayer-common.aar (com.google.android.exoplayer:exoplayer-common:2.12.1) with AarTransform
[        ] > Transform core-runtime.aar (androidx.arch.core:core-runtime:2.0.0) with AarTransform
[        ] > Transform exoplayer-extractor.aar (com.google.android.exoplayer:exoplayer-extractor:2.12.1) with
AarTransform
[        ] > Transform lifecycle-livedata-core.aar (androidx.lifecycle:lifecycle-livedata-core:2.0.0) with AarTransform
[        ] > Transform lifecycle-livedata.aar (androidx.lifecycle:lifecycle-livedata:2.0.0) with AarTransform
[        ] > Transform savedstate.aar (androidx.savedstate:savedstate:1.0.0) with AarTransform
[  +14 ms] > Transform lifecycle-common-java8.jar (androidx.lifecycle:lifecycle-common-java8:2.2.0) with
IdentityTransform
[        ] > Transform core.aar (androidx.core:core:1.1.0) with AarTransform
[   +1 ms] > Transform lifecycle-runtime.aar (androidx.lifecycle:lifecycle-runtime:2.2.0) with AarTransform
[        ] > Transform customview.aar (androidx.customview:customview:1.0.0) with AarTransform
[        ] > Transform loader.aar (androidx.loader:loader:1.0.0) with AarTransform
[        ] > Transform viewpager.aar (androidx.viewpager:viewpager:1.0.0) with AarTransform
[        ] > Transform activity.aar (androidx.activity:activity:1.0.0) with AarTransform
[        ] > Transform fragment.aar (androidx.fragment:fragment:1.1.0) with AarTransform
[        ] > Transform espresso-core.aar (androidx.test.espresso:espresso-core:3.2.0) with AarTransform
[        ] > Transform rules.aar (androidx.test:rules:1.2.0) with AarTransform
[        ] > Transform runner.aar (androidx.test:runner:1.2.0) with AarTransform
[        ] > Transform flutter_embedding_debug.jar
(io.flutter:flutter_embedding_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f) with IdentityTransform
[  +11 ms] > Transform exifinterface.aar (androidx.exifinterface:exifinterface:1.3.0) with AarTransform
[        ] > Transform x86_64_debug.jar (io.flutter:x86_64_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f) with
IdentityTransform
[        ] > Transform x86_debug.jar (io.flutter:x86_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f) with
IdentityTransform
[        ] > Transform exoplayer-core.aar (com.google.android.exoplayer:exoplayer-core:2.12.1) with AarTransform
[        ] > Transform arm64_v8a_debug.jar (io.flutter:arm64_v8a_debug:1.0.0-6993cb229b99e6771c6c6c2b884ae006d8160a0f)
with IdentityTransform
[        ] > Transform exoplayer-smoothstreaming.aar (com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1) with
AarTransform
[        ] > Transform exoplayer-dash.aar (com.google.android.exoplayer:exoplayer-dash:2.12.1) with AarTransform
[        ] > Transform exoplayer-hls.aar (com.google.android.exoplayer:exoplayer-hls:2.12.1) with AarTransform
[        ] > Task :app:mergeDebugJniLibFolders
[        ] > Task :flutter_plugin_android_lifecycle:compileDebugNdk NO-SOURCE
[        ] > Task :flutter_plugin_android_lifecycle:mergeDebugJniLibFolders
[        ] > Task :flutter_plugin_android_lifecycle:transformNativeLibsWithMergeJniLibsForDebug
[        ] > Task :flutter_plugin_android_lifecycle:transformNativeLibsWithIntermediateJniLibsForDebug
[        ] > Task :image_picker:compileDebugNdk NO-SOURCE
[        ] > Task :image_picker:mergeDebugJniLibFolders
[        ] > Task :image_picker:transformNativeLibsWithMergeJniLibsForDebug
[        ] > Task :image_picker:transformNativeLibsWithIntermediateJniLibsForDebug
[        ] > Task :integration_test:compileDebugNdk NO-SOURCE
[  +32 ms] > Task :integration_test:mergeDebugJniLibFolders
[        ] > Task :integration_test:transformNativeLibsWithMergeJniLibsForDebug
[        ] > Task :integration_test:transformNativeLibsWithIntermediateJniLibsForDebug
[        ] > Task :video_player:compileDebugNdk NO-SOURCE
[        ] > Task :video_player:mergeDebugJniLibFolders
[        ] > Task :video_player:transformNativeLibsWithMergeJniLibsForDebug
[        ] > Task :video_player:transformNativeLibsWithIntermediateJniLibsForDebug
[+2199 ms] > Task :app:transformNativeLibsWithMergeJniLibsForDebug
[        ] > Task :app:processDebugJavaRes NO-SOURCE
[ +600 ms] > Task :app:transformResourcesWithMergeJavaResForDebug
[+3896 ms] > Task :app:packageDebug
[ +199 ms] > Task :app:assembleDebug
[        ] > Task :flutter_plugin_android_lifecycle:extractDebugAnnotations
[        ] > Task :flutter_plugin_android_lifecycle:mergeDebugConsumerProguardFiles
[        ] > Task :flutter_plugin_android_lifecycle:transformResourcesWithMergeJavaResForDebug
[        ] > Task :flutter_plugin_android_lifecycle:transformClassesAndResourcesWithSyncLibJarsForDebug
[        ] > Task :flutter_plugin_android_lifecycle:transformNativeLibsWithSyncJniLibsForDebug
[        ] > Task :flutter_plugin_android_lifecycle:bundleDebugAar
[        ] > Task :flutter_plugin_android_lifecycle:compileDebugSources
[        ] > Task :flutter_plugin_android_lifecycle:assembleDebug
[ +102 ms] > Task :image_picker:extractDebugAnnotations
[        ] > Task :image_picker:mergeDebugConsumerProguardFiles
[        ] > Task :image_picker:transformResourcesWithMergeJavaResForDebug
[        ] > Task :image_picker:transformClassesAndResourcesWithSyncLibJarsForDebug
[        ] > Task :image_picker:transformNativeLibsWithSyncJniLibsForDebug
[        ] > Task :image_picker:bundleDebugAar
[        ] > Task :image_picker:compileDebugSources
[        ] > Task :image_picker:assembleDebug
[        ] > Task :integration_test:extractDebugAnnotations
[        ] > Task :integration_test:mergeDebugConsumerProguardFiles
[        ] > Task :integration_test:transformResourcesWithMergeJavaResForDebug
[        ] > Task :integration_test:transformClassesAndResourcesWithSyncLibJarsForDebug
[        ] > Task :integration_test:transformNativeLibsWithSyncJniLibsForDebug
[  +97 ms] > Task :integration_test:bundleDebugAar
[        ] > Task :integration_test:compileDebugSources
[        ] > Task :integration_test:assembleDebug
[        ] > Task :video_player:extractDebugAnnotations
[        ] > Task :video_player:mergeDebugConsumerProguardFiles
[        ] > Task :video_player:transformResourcesWithMergeJavaResForDebug
[        ] > Task :video_player:transformClassesAndResourcesWithSyncLibJarsForDebug
[        ] > Task :video_player:transformNativeLibsWithSyncJniLibsForDebug
[        ] > Task :video_player:bundleDebugAar
[        ] > Task :video_player:compileDebugSources
[        ] > Task :video_player:assembleDebug
[        ] BUILD SUCCESSFUL in 45s
[        ] 122 actionable tasks: 121 executed, 1 up-to-date
[ +443 ms] Running Gradle task 'assembleDebug'... (completed in 46.1s)
[  +54 ms] calculateSha: LocalDirectory:
'/Users/tahatesser/AndroidStudioProjects/plugins/packages/image_picker/image_picker/example/build/app/outputs/flutter-apk
'/app.apk
[ +685 ms] ✓ Built build/app/outputs/flutter-apk/app-debug.apk.
[   +6 ms] executing: /Volumes/Extreme/SDK/build-tools/30.0.3/aapt dump xmltree
/Users/tahatesser/AndroidStudioProjects/plugins/packages/image_picker/image_picker/example/build/app/outputs/flutter-apk/
app.apk AndroidManifest.xml
[  +74 ms] Exit code 0 from: /Volumes/Extreme/SDK/build-tools/30.0.3/aapt dump xmltree
/Users/tahatesser/AndroidStudioProjects/plugins/packages/image_picker/image_picker/example/build/app/outputs/flutter-apk/
app.apk AndroidManifest.xml
[        ] N: android=http://schemas.android.com/apk/res/android
             E: manifest (line=2)
               A: android:versionCode(0x0101021b)=(type 0x10)0x1
               A: android:versionName(0x0101021c)="1.0" (Raw: "1.0")
               A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1d
               A: android:compileSdkVersionCodename(0x01010573)="10" (Raw: "10")
               A: package="io.flutter.plugins.imagepicker.example" (Raw: "io.flutter.plugins.imagepicker.example")
               A: platformBuildVersionCode=(type 0x10)0x1
               A: platformBuildVersionName=(type 0x4)0x3f800000
               E: uses-sdk (line=7)
                 A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
                 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1c
               E: uses-permission (line=11)
                 A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET")
               E: uses-permission (line=12)
                 A: android:name(0x01010003)="android.permission.READ_EXTERNAL_STORAGE" (Raw:
                 "android.permission.READ_EXTERNAL_STORAGE")
               E: uses-permission (line=13)
                 A: android:name(0x01010003)="android.permission.WRITE_EXTERNAL_STORAGE" (Raw:
                 "android.permission.WRITE_EXTERNAL_STORAGE")
               E: uses-permission (line=14)
                 A: android:name(0x01010003)="android.permission.ACCESS_NETWORK_STATE" (Raw:
                 "android.permission.ACCESS_NETWORK_STATE")
               E: application (line=16)
                 A: android:label(0x01010001)="Image Picker Example" (Raw: "Image Picker Example")
                 A: android:icon(0x01010002)=@0x7f080000
                 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
                 A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory" (Raw:
                 "androidx.core.app.CoreComponentFactory")
                 E: activity (line=21)
                   A: android:theme(0x01010000)=@0x01030009
                   A: android:name(0x01010003)="io.flutter.embedding.android.FlutterActivity" (Raw:
                   "io.flutter.embedding.android.FlutterActivity")
                   A: android:configChanges(0x0101001f)=(type 0x11)0x24b4
                   A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
                   A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
                   E: intent-filter (line=27)
                     E: action (line=28)
                       A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
                     E: category (line=30)
                       A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw:
                       "android.intent.category.LAUNCHER")
                 E: activity (line=33)
                   A: android:theme(0x01010000)=@0x01030009
                   A: android:name(0x01010003)="io.flutter.plugins.imagepickerexample.EmbeddingV1Activity" (Raw:
                   "io.flutter.plugins.imagepickerexample.EmbeddingV1Activity")
                   A: android:configChanges(0x0101001f)=(type 0x11)0x24b4
                   A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
                   A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
                 E: meta-data (line=41)
                   A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
                   A: android:value(0x01010024)=(type 0x10)0x2
                 E: provider (line=45)
                   A: android:name(0x01010003)="io.flutter.plugins.imagepicker.ImagePickerFileProvider" (Raw:
                   "io.flutter.plugins.imagepicker.ImagePickerFileProvider")
                   A: android:exported(0x01010010)=(type 0x12)0x0
                   A: android:authorities(0x01010018)="io.flutter.plugins.imagepicker.example.flutter.image_provider"
                   (Raw: "io.flutter.plugins.imagepicker.example.flutter.image_provider")
                   A: android:grantUriPermissions(0x0101001b)=(type 0x12)0xffffffff
                   E: meta-data (line=50)
                     A: android:name(0x01010003)="android.support.FILE_PROVIDER_PATHS" (Raw:
                     "android.support.FILE_PROVIDER_PATHS")
                     A: android:resource(0x01010025)=@0x7f0c0000
[  +31 ms] Stopping app 'app.apk' on IN2011.
[        ] executing: /Volumes/Extreme/SDK/platform-tools/adb -s c9d8ee0c shell am force-stop
io.flutter.plugins.imagepicker.example
[  +84 ms] executing: /Volumes/Extreme/SDK/platform-tools/adb -s c9d8ee0c shell pm list packages
io.flutter.plugins.imagepicker.example
[  +97 ms] Installing APK.
[   +3 ms] Installing build/app/outputs/flutter-apk/app.apk...
[        ] executing: /Volumes/Extreme/SDK/platform-tools/adb -s c9d8ee0c install -t -r
/Users/tahatesser/AndroidStudioProjects/plugins/packages/image_picker/image_picker/example/build/app/outputs/flutter-apk/
app.apk
[+3886 ms] Performing Streamed Install
                    Success
[        ] Installing build/app/outputs/flutter-apk/app.apk... (completed in 3.9s)
[   +5 ms] executing: /Volumes/Extreme/SDK/platform-tools/adb -s c9d8ee0c shell echo -n
816a84a984f19bd73b195da7b63593ad0b411b77 > /data/local/tmp/sky.io.flutter.plugins.imagepicker.example.sha1
[  +35 ms] executing: /Volumes/Extreme/SDK/platform-tools/adb -s c9d8ee0c shell -x logcat -v time -t 1
[ +135 ms] --------- beginning of main
                    02-18 17:03:45.162 E/ategoryprovide( 8752): Not starting debugger since process cannot load the jdwp
                    agent.
[  +17 ms] executing: /Volumes/Extreme/SDK/platform-tools/adb -s c9d8ee0c shell am start -a android.intent.action.RUN -f
0x20000000 --ez enable-background-compilation true --ez enable-dart-profiling true --ez enable-checked-mode true --ez
verify-entry-points true io.flutter.plugins.imagepicker.example/io.flutter.embedding.android.FlutterActivity
[  +70 ms] Starting: Intent { act=android.intent.action.RUN flg=0x20000000
cmp=io.flutter.plugins.imagepicker.example/io.flutter.embedding.android.FlutterActivity (has extras) }
[   +1 ms] Waiting for observatory port to be available...
[ +699 ms] Observatory URL on device: http://127.0.0.1:40177/uOhTehfFaXY=/
[   +4 ms] executing: /Volumes/Extreme/SDK/platform-tools/adb -s c9d8ee0c forward tcp:0 tcp:40177
[  +16 ms] 64805
[        ] Forwarded host port 64805 to device port 40177 for Observatory
[   +8 ms] Caching compiled dill
[ +113 ms] Connecting to service protocol: http://127.0.0.1:64805/uOhTehfFaXY=/
[ +229 ms] Launching a Dart Developer Service (DDS) instance at http://127.0.0.1:0, connecting to VM service at
http://127.0.0.1:64805/uOhTehfFaXY=/.
[ +103 ms] DDS is listening at http://127.0.0.1:64808/zbMX4HpRzgk=/.
[  +72 ms] Successfully connected to service protocol: http://127.0.0.1:64805/uOhTehfFaXY=/
[  +27 ms] DevFS: Creating new filesystem on the device (null)
[  +19 ms] DevFS: Created new filesystem on the device
(file:///data/user/0/io.flutter.plugins.imagepicker.example/code_cache/exampleHOFGUV/example/)
[   +3 ms] Updating assets
[ +109 ms] Syncing files to device IN2011...
[   +1 ms] <- reset
[        ] Compiling dart to kernel with 0 updated files
[   +2 ms] <- recompile package:image_picker_example/main.dart 515939d5-96e3-4249-a863-0a6cf44c3df6
[        ] <- 515939d5-96e3-4249-a863-0a6cf44c3df6
[   +1 ms] W/DisplayEventDispatcher(29438): dispatcher 0x764c0aeab0 ~ ignoring unknown event type 0x6d746f6e
[        ] W/DisplayEventDispatcher(29438): dispatcher 0x75fc0a0530 ~ ignoring unknown event type 0x6d746f6e
[ +147 ms] Updating files.
[        ] DevFS: Sync finished
[   +1 ms] Syncing files to device IN2011... (completed in 154ms)
[        ] Synced 0.0MB.
[   +1 ms] <- accept
[  +27 ms] Connected to _flutterView/0x76cc0866f0.
[   +7 ms] Flutter run key commands.
[   +2 ms] r Hot reload. 🔥🔥🔥
[   +1 ms] R Hot restart.
[        ] h Repeat this help message.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] 💪 Running with sound null safety 💪
[        ] An Observatory debugger and profiler on IN2011 is available at: http://127.0.0.1:64808/zbMX4HpRzgk=/
[ +812 ms] The Flutter DevTools debugger and profiler on IN2011 is available at:
                    http://127.0.0.1:9104?uri=http%3A%2F%2F127.0.0.1%3A64808%2FzbMX4HpRzgk%3D%2F
[+2292 ms] W/IInputConnectionWrapper(29438): getTextBeforeCursor on inactive InputConnection
[        ] W/IInputConnectionWrapper(29438): getSelectedText on inactive InputConnection
[        ] W/IInputConnectionWrapper(29438): getTextAfterCursor on inactive InputConnection
[  +48 ms] D/OpScreenModeManager(29438): setRefreshRate parent io.flutter.embedding.android.FlutterView{595c5be VFE......
.F...... 0,0-1080,2355 aid=1073741824} parent width 1080 parent height 2355 mRatio 1.2
[   +1 ms] D/OpScreenModeManager(29438): setRefreshRate view io.flutter.embedding.android.FlutterSurfaceView{7621479
V.E...... ........ 0,0-1080,2355} viewRate 1 width 1080 height 2355
[ +313 ms] D/OpScreenModeManager(29438): setRefreshRate parent io.flutter.embedding.android.FlutterView{595c5be VFE......
.F...... 0,0-1080,2355 aid=1073741824} parent width 1080 parent height 2355 mRatio 1.2
[        ] D/OpScreenModeManager(29438): setRefreshRate view io.flutter.embedding.android.FlutterSurfaceView{7621479
V.E...... ........ 0,0-1080,2355} viewRate 1 width 1080 height 2355
[+3984 ms] D/OpScreenModeManager(29438): setRefreshRate parent io.flutter.embedding.android.FlutterView{595c5be VFE......
.F...... 0,0-1080,2355 aid=1073741824} parent width 1080 parent height 2355 mRatio 1.2
[   +1 ms] D/OpScreenModeManager(29438): setRefreshRate view io.flutter.embedding.android.FlutterSurfaceView{7621479
V.E...... ........ 0,0-1080,2355} viewRate 1 width 1080 height 2355
[+1911 ms] W/IInputConnectionWrapper(29438): getTextBeforeCursor on inactive InputConnection
[   +1 ms] W/IInputConnectionWrapper(29438): getSelectedText on inactive InputConnection
[        ] W/IInputConnectionWrapper(29438): getTextAfterCursor on inactive InputConnection
[  +40 ms] D/OpScreenModeManager(29438): setRefreshRate parent io.flutter.embedding.android.FlutterView{595c5be VFE......
.F...... 0,0-1080,2355 aid=1073741824} parent width 1080 parent height 2355 mRatio 1.2
[        ] D/OpScreenModeManager(29438): setRefreshRate view io.flutter.embedding.android.FlutterSurfaceView{7621479
V.E...... ........ 0,0-1080,2355} viewRate 1 width 1080 height 2355
[+8255 ms] D/OpScreenModeManager(29438): setRefreshRate parent io.flutter.embedding.android.FlutterView{595c5be VFE......
.F...... 0,0-1080,2355 aid=1073741824} parent width 1080 parent height 2355 mRatio 1.2
[   +1 ms] D/OpScreenModeManager(29438): setRefreshRate view io.flutter.embedding.android.FlutterSurfaceView{7621479
V.E...... ........ 0,0-1080,2355} viewRate 1 width 1080 height 2355
[  +10 ms] D/ViewRootImpl[FlutterActivity](29438): windowFocusChanged hasFocus=false inTouchMode=true
[  +93 ms] W/DisplayEventDispatcher(29438): dispatcher 0x75fc0a0530 ~ ignoring unknown event type 0x6d746f6e
[        ] W/DisplayEventDispatcher(29438): dispatcher 0x764c0aeab0 ~ ignoring unknown event type 0x6d746f6e
[  +65 ms] D/OpScreenModeManager(29438): setRefreshRate parent io.flutter.embedding.android.FlutterView{595c5be VFE......
.F...... 0,0-1080,2355 aid=1073741824} parent width 1080 parent height 2355 mRatio 1.2
[        ] D/OpScreenModeManager(29438): setRefreshRate view io.flutter.embedding.android.FlutterSurfaceView{7621479
V.E...... ........ 0,0-1080,2355} viewRate 1 width 1080 height 2355
[ +709 ms] D/DecorView(29438): onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@1f9461f[FlutterActivity]
[   +3 ms] D/ViewRootImpl[FlutterActivity](29438): windowFocusChanged hasFocus=true inTouchMode=true
[  +48 ms] D/ViewRootImpl[FlutterActivity](29438): windowFocusChanged hasFocus=false inTouchMode=true
[+1367 ms] D/ImageResizer(29438): image_picker: compressing is not supported for type PNG. Returning the image with
original quality
[  +28 ms] D/ActivityThread(29438): pid:29438 tid:29438 doframe Callback
[  +11 ms] D/OpScreenModeManager(29438): setRefreshRate parent io.flutter.embedding.android.FlutterView{595c5be VFE......
.F...... 0,0-1080,2355 aid=1073741824} parent width 1080 parent height 2355 mRatio 1.2
[   +1 ms] D/OpScreenModeManager(29438): setRefreshRate view io.flutter.embedding.android.FlutterSurfaceView{7621479
V.E...... ........ 0,0-1080,2355} viewRate 1 width 1080 height 2355
[        ] D/OpScreenModeManager(29438): setRefreshRate parent io.flutter.embedding.android.FlutterView{595c5be VFE......
.F...... 0,0-1080,2355 aid=1073741824} parent width 1080 parent height 2355 mRatio 1.2
[        ] D/OpScreenModeManager(29438): setRefreshRate view io.flutter.embedding.android.FlutterSurfaceView{7621479
V.E...... ........ 0,0-1080,2355} viewRate 1 width 1080 height 2355
[  +12 ms] D/DecorView(29438): onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@1f9461f[FlutterActivity]
[        ] D/ViewRootImpl[FlutterActivity](29438): windowFocusChanged hasFocus=true inTouchMode=true
[ +599 ms] W/DisplayEventDispatcher(29438): dispatcher 0x764c0aeab0 ~ ignoring unknown event type 0x6d746f6e
[        ] W/DisplayEventDispatcher(29438): dispatcher 0x75fc0a0530 ~ ignoring unknown event type 0x6d746f6e

flutter doctor -v
[✓] Flutter (Channel master, 1.27.0-5.0.pre.49, on macOS 11.2.1 20D74 darwin-x64, locale en-GB)
    • Flutter version 1.27.0-5.0.pre.49 at /Users/tahatesser/Code/flutter_master
    • Framework revision 23e41734e5 (3 hours ago), 2021-02-18 00:46:02 -0800
    • Engine revision 6993cb229b
    • Dart version 2.13.0 (build 2.13.0-30.0.dev)
[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.
[!] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
[✓] VS Code (version 1.53.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.19.0
[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 11.2.1 20D74 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 88.0.4324.182
! Doctor found issues in 2 categories.

Thank you

TahaTesser avatar Feb 18 '21 11:02 TahaTesser

This issue can reproduce on Android OS on latest stable and master channel and image_picker: ^0.8.5

Device info: Pixel 4 API 30 (Emulator)

Demo

https://user-images.githubusercontent.com/104349824/165943707-e9ed4f16-e990-4f2f-a7b9-cf4132849504.mp4

flutter doctor -v
[✓] Flutter (Channel stable, 2.10.5, on macOS 12.2.1 21D62 darwin-x64, locale en-VN)
    • Flutter version 2.10.5 at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 5464c5bac7 (11 days ago), 2022-04-18 09:55:37 -0700
    • Engine revision 57d3bac3dd
    • Dart version 2.16.2
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/201.7042882/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] Android Studio
    • Android Studio at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-1/203.7185775/Android Studio Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)

[✓] IntelliJ IDEA Community Edition (version 2020.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.62.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.28.0

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 100.0.4896.127

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!
[✓] Flutter (Channel master, 2.13.0-0.0.pre.808, on macOS 12.2.1 21D62 darwin-x64, locale en-VN)
    • Flutter version 2.13.0-0.0.pre.808 at /Users/huynq/Documents/GitHub/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2eed8cbf93 (4 hours ago), 2022-04-28 22:29:06 -0400
    • Engine revision dfdfe0b3b0
    • Dart version 2.18.0 (build 2.18.0-66.0.dev)
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/201.7042882/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[!] Android Studio
    • Android Studio at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-1/203.7185775/Android Studio Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] IntelliJ IDEA Community Edition (version 2020.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.62.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.28.0

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 100.0.4896.127

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

huycozy avatar Apr 29 '22 12:04 huycozy

flutter image_picker: ^0.8.6

When selecting Android gif, gif is lost when setting maxWidth, maxHeight. When will it be fixed?

SangHunShin avatar Dec 13 '22 08:12 SangHunShin

I can reproduce this issue using the latest version of the image_picker and video_player packages and on the latest stable and master channels. Hence, the issue still persists Code Sample

flutter doctor -v
[✓] Flutter (Channel master, 3.11.0-2.0.pre.55, on macOS 13.3 22E252 darwin-arm64, locale en-NG)
    • Flutter version 3.11.0-2.0.pre.55 on channel master at /Users/dammya/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 835b892d7f (10 days ago), 2023-05-07 01:30:22 +0530
    • Engine revision 23f730efbf
    • Dart version 3.1.0 (build 3.1.0-83.0.dev)
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/dammya/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/dammya/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.78.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] VS Code (version 1.78.0)
    • VS Code at /Users/dammya/.Trash/Visual Studio Code 20.07.05.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (5 available)
    • sdk gphone arm64 (mobile)  • emulator-5554                        •
      android-arm64  • Android 11 (API 30) (emulator)
    • iPhone 14 Pro Max (mobile) • D7F3302D-D66F-4B89-B8CF-DBEE1CDB5449 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPhone 6s (mobile)         • A1D0DCE9-4C5B-4BCD-878C-61FDA439F5A8 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)            • macos                                •
      darwin-arm64   • macOS 13.3 22E252 darwin-arm64
    • Chrome (web)               • chrome                               •
      web-javascript • Google Chrome 113.0.5672.92

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[✓] Flutter (Channel stable, 3.10.0, on macOS 13.3 22E252 darwin-arm64, locale
    en-NG)
    • Flutter version 3.10.0 on channel stable at /Users/dammya/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 84a1e904f4 (7 days ago), 2023-05-09 07:41:44 -0700
    • Engine revision d44b5a94c9
    • Dart version 3.0.0
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version
    32.1.0-rc1)
    • Android SDK at /Users/dammya/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/dammya/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.78.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] VS Code (version 1.78.0)
    • VS Code at /Users/dammya/.Trash/Visual Studio Code 20.07.05.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (5 available)
    • sdk gphone arm64 (mobile)  • emulator-5554                        •
      android-arm64  • Android 11 (API 30) (emulator)
    • iPhone 14 Pro Max (mobile) • D7F3302D-D66F-4B89-B8CF-DBEE1CDB5449 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPhone 6s (mobile)         • A1D0DCE9-4C5B-4BCD-878C-61FDA439F5A8 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)            • macos                                •
      darwin-arm64   • macOS 13.3 22E252 darwin-arm64
    • Chrome (web)               • chrome                               •
      web-javascript • Google Chrome 113.0.5672.92

[✓] Network resources
    • All expected network resources are available.

• No issues found!

dam-ease avatar May 16 '23 14:05 dam-ease

Is there a fix for this ?

amrkhaledccd avatar Mar 10 '24 19:03 amrkhaledccd