text:
UI issue

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create flutter app
Add Container in the center with size and color. width and height is wrapped in dp function, which is - I use this code  - import 'dart:ui';

class _Metrics {
static final scale = setScale();
static double setScale() {
final pixelRatio = PlatformDispatcher.instance.views.first.devicePixelRatio;
final screenWidth = PlatformDispatcher.instance.views.first.physicalSize.shortestSide;
final deviceScreenWidth = screenWidth / pixelRatio;
const designScreenWidth = 375;
return deviceScreenWidth / designScreenWidth;
}
}
double dp(pixels) {
return (pixels * _Metrics.scale);
}
designScreenWidth is the width of design screen in figma
3. Run in profile mode
4. Close the app
5. Open app again from the device
Expected results
Color block in the center of the app on the second open
Actual results
The block in the center does not appear. Same issue on ios. Also, wrapping runApp in Future.delayed solves the problem
Code sample
Code sample

import 'dart:ui';

class _Metrics {
  static final scale = setScale();

  static double setScale() {
    final pixelRatio = PlatformDispatcher.instance.views.first.devicePixelRatio;
    final screenWidth = PlatformDispatcher.instance.views.first.physicalSize.shortestSide;
    final deviceScreenWidth = screenWidth / pixelRatio;
    const designScreenWidth = 375;
    return deviceScreenWidth / designScreenWidth;
  }
}

double dp(pixels) {
  return (pixels * _Metrics.scale);
}

import 'package:flutter/material.dart';
import 'metrics.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Container(
          width: dp(100),
          height: dp(100),
          color: Colors.blue,
        )
      ),
    );
  }
}

Screenshots or Video

First video is the state of the app after building it in profile mode. Second video is the opening of the app after closing it.
[Upload media here]

https://github.com/flutter/flutter/assets/109822566/c0e6d5e1-fd5a-4642-95b2-acf782be504f
https://github.com/flutter/flutter/assets/109822566/70a52df5-8e2f-4d73-84ea-91003c0ed7ce
Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.10.6, on macOS 12.5 21G72 darwin-arm64 (Rosetta), locale en-US)
    • Flutter version 3.10.6 on channel stable at /Users/user/FlutterDev/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f468f3366c (10 days ago), 2023-07-12 15:19:05 -0700
    • Engine revision cdbeda788a
    • Dart version 3.0.6
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/user/Library/Android/sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 2021.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.13+0-b1751.21-8125866)

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

[✓] Connected device (3 available)
    • 23021RAA2Y (mobile) • 47350df3 • android-arm64  • Android 13 (API 33)
    • macOS (desktop)     • macos    • darwin-arm64   • macOS 12.5 21G72 darwin-arm64 (Rosetta)
    • Chrome (web)        • chrome   • web-javascript • Google Chrome 115.0.5790.102

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

• No issues found!

Hi @g1tPush. Thanks for filing this issue. I'm currently unable to reproduce this issue on the latest flutter version, Can you help provide more information about reproducing this?
https://github.com/flutter/flutter/assets/53122008/1bec269b-b92d-497b-b12f-6353e1464a18

Thanks for checking the issue, in order to reproduce it, you need to run it in profile mode on real device and terminate it completely before reopening

Hi @g1tPush. Thanks for your response. This seems to be specific to Android devices. Testing on a TECNO LC6a, Android 9 and the center color block doesn't appear even on the first run. Is this the case on your end? If not, can you share details on the device information you are reproducing this on?

Actually, I have tried this on iphone 7 and there was the same problem with the block after restart.  android phone is Xiaomi Redmi Note 12

Hi @g1tPush. Thanks for your response. This is a duplicate of https://github.com/flutter/flutter/issues/101478. window.physicalSize is used but its more or less the same principle as using PlatformDispatcher. Using the platform dispatcher api to access the window info, in profile/release mode, the data may not be available so it is not reliable. Per https://github.com/flutter/flutter/issues/101478#issuecomment-1095402681, this could help. Closing this as a duplicate, if you disagree, kindly comment and I'd reopen it.
Thank you!


text:
Why path scaling transform moves the original path?

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create a CustomPainter which draws a simple circle using Path (actually the path if complex).
Use Path.transform method to scale (increase or decrease) original path.
The result path is scaled and shifted but I expected only scaling because I used scale matrix.

I don't know if this is a bug or feature? If it is feature so how to just scale the path of any kind?
Expected results
I expected that my circle become less but centered as the original one.

Actual results
But I received this result:

Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(
    CustomPaint(painter: CirclePainter()),
  );
}

class CirclePainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    final sourcePath = Path()
      ..addOval(Rect.fromCircle(
          center: Offset(size.width / 2, size.height / 2), radius: 100));

    canvas.drawPath(
      sourcePath,
      Paint()
        ..color = Colors.grey
        ..style = PaintingStyle.fill,
    );

    final scalingMatrix = Matrix4.identity()..scale(0.95);
    final targetPath = sourcePath.transform(scalingMatrix.storage);

    canvas.drawPath(
      targetPath,
      Paint()
        ..color = Colors.red.withOpacity(0.5)
        ..style = PaintingStyle.fill,
    );
  }

  @override
  bool shouldRepaint(covariant CustomPainter oldDelegate) => true;
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.13.7, on Microsoft Windows [Version 10.0.19045.3570], locale ru-RU)
    • Flutter version 3.13.7 on channel stable at D:\Programs\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2f708eb839 (3 weeks ago), 2023-10-09 09:58:08 -0500
    • Engine revision a794cf2681
    • Dart version 3.1.3
    • DevTools version 2.25.0

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at D:\Programs\Android\sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: D:\Programs\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[!] Visual Studio - develop Windows apps (Visual Studio Professional 2019 16.11.17)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
    • Visual Studio Professional 2019 version 16.11.32630.194
    X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with C++" workload, and include these components:
        MSVC v142 - VS 2019 C++ x64/x86 build tools
         - If there are multiple build tool versions available, install the latest
        C++ CMake tools for Windows
        Windows 10 SDK

[√] Android Studio (version 2021.2)
    • Android Studio at D:\Programs\Android\Android Studio
    • 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+7-b1504.28-7817840)

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19045.3570]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 118.0.5993.118
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 118.0.2088.76

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

I can see the issue on the latest Flutter stable/master channels. Verified on Web/Android/MacOS platforms.

web
android

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.13.9, on macOS 14.0 23A344 darwin-x64, locale en-VN)
    • Flutter version 3.13.9 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d211f42860 (7 hours ago), 2023-10-25 13:42:25 -0700
    • Engine revision 0545f8705d
    • Dart version 3.1.5
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio Giraffe.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A240d
    • CocoaPods version 1.13.0

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

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio Giraffe.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 17.0.6+0-17.0.6b829.9-10027231)

[✓] Android Studio (version 2022.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 17.0.6+0-17.0.6b802.4-9586694)

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

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 14.0 23A344 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 118.0.5993.117

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

• No issues found!

[!] Flutter (Channel master, 3.16.0-18.0.pre.91, on macOS 14.0 23A344 darwin-x64, locale en-VN)
    • Flutter version 3.16.0-18.0.pre.91 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e12d1a798c (6 hours ago), 2023-10-29 15:00:30 -0700
    • Engine revision 84dcb4fb93
    • Dart version 3.3.0 (build 3.3.0-71.0.dev)
    • DevTools version 2.28.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio Giraffe.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A240d
    • CocoaPods version 1.13.0

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

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio Giraffe.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 17.0.6+0-17.0.6b829.9-10027231)

[✓] Android Studio (version 2022.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 17.0.6+0-17.0.6b802.4-9586694)

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

[✓] Connected device (3 available)
    • iPhone (mobile) • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.7.9 19H365
    • macOS (desktop) • macos                                    • darwin-x64     • macOS 14.0 23A344 darwin-x64
    • Chrome (web)    • chrome                                   • web-javascript • Google Chrome 118.0.5993.117

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

! Doctor found issues in 1 category.

This is just the way that matrix operations work. If you want your circular path to be centered, you'll need to translate it as well.
See e.g. https://stackoverflow.com/questions/71806150/on-canvas-scale-shape-from-its-center

source: gharchive/issue

authors: bambinoua dnfield huycozy

repo: flutter/flutter

license_type: permissive

license_source: github-api


text:
[Impeller] Use ASurfaceControl/ASurfaceTransaction/AHardwareBuffer instead of a Vulkan API based swapchain on Android

We should be able to create an ASurfaceControl from the ANativeWindow, and use that ASurfaceControl to create one or more ASurfaceTransactions that set an AHardwareBuffer to them (using ASurfaceTransaction_setBuffer).
This should replace the current swapchain implementation on Vulkan - we'd have to wrap the AHardwareBuffers into whatever Vulkan objects (I assume a VkImage?) that get used by the rest of Impeller.
This gives us a few more knobs that aren't available in the straight Vulkan APIs:

Better HDR support (not 100% clear on how but it's in the docs).
Set a completion callback that gives us stats
Some more methods we could try to use to handle cases where we submit two frames in a single vsync, e.g. https://developer.android.com/ndk/reference/group/native-activity#asurfacetransaction_setframetimeline and https://developer.android.com/ndk/reference/group/native-activity#asurfacetransaction_setdesiredpresenttime and https://developer.android.com/ndk/reference/group/native-activity#asurfacetransaction_setenablebackpressure

In theory it could help as well since we'll be talking directly to surfaceflinger with this API rather than going through whatever the Vulkan driver is doing. These APIs are all 29+, but we're already restricting Vulkan on Impeller to 29+ anyway.
This last part is what I think will give us better integration with Android native tracing capabilities.
@johnmccutchan @jonahwilliams @chinmaygarde fyi

I think we can de-duplicate this issue with https://github.com/flutter/flutter/issues/132512

Per the discussion in the last Impeller Weekly, this is no longer a priority and @johnmccutchan is also no longer blocked.

authors: chinmaygarde dnfield


text:
Improve the tools/process around tracking and minimizing technical debt

Forked from https://github.com/flutter/flutter/issues/143312.
This is a catch-all issue/wishlist for having better tooling or process for minimizing and reducing usages of deprecated stuff[^1].
Anyone is welcome to add their thoughts, but:

Please be respectful.
These are for tools and process for Flutter contributors, not users, i.e. for the Flutter framework itself.
When possible, explain the problem you're trying to solve before suggesting a solution.

It's also not clear who or when this work will get done, but we can discuss priorities as a team.
[^1]: I'd say code, but perhaps you could extend this to "using Groovy instead of Kotlin for Gradle", etc.

I'll start with a few seeded ideas:
1-time allow-listing all existing deprecations and making future ones breaking
Imagine the following API:
// package:foo/foo.dart

final class Foo {
  void bar() {}
}

In a roll, the following happens:
// package:foo/foo.dart

final class Foo {
+  @Deprecated('Use baz() instead')
  void bar() {}
+  void baz() {}
}

... a bot could automatically add:
+ // ignore: deprecated_member_use
foo.bar();

... to all existing call-sites, and then make that symbol breaking for future usages.
Create a dashboard that tracks deprecated member usages
... potentially with WoW or MoM changes.

Import
Symbol
Current
Last 30 Days

package:foo/foo.dart
Foo.bar
3
+1 (33%)

Thank you for suggesting this!
There can be other important tech debt that deserves tracking and may be handled automatically.
For example, broken hermeticity of a test, discovered by randomization testing. The bot code automatically exempt the test from randomization, making sure this tech debt shows up on the dashboard and is treated as important.
Would it make sense to have infra not just for deprecations, but for different types of 'high priority tech debt'?

Sure, that makes sense to me!

I'd love for a similar tool as suggested above for deprecations, but that applies to any lint. My hope is that if an upstream change breaks a lint on the framework or its third-party packages, there is a choice for how to roll forward and not always resort to reverting the upstream change.
To illustrate what I mean, let me share an example of a recent change we did. It went as follows:

a change landed in the Dart SDK (lint breakages went through undetected)
autoroller noticed a breakage in the flutter CI, so we reverted the change
we discovered all places where the lint broke
we added an // ignore:  as needed to allow relanding. In our case, the change needed to be in-place on an existing API and we couldn't expose a new API. This meant we couldn't avoid the lint violations on an atomic change.
land the change again, unmodified.
revisit each // ignore:  and update the code to avoid the lint violation

The main highlight is that step 6 couldn't be done at the time of step 4. With right tooling we could make steps 2-5 a single semi-automated step:

a change lands in the Dart SDK (lint breakages went through)
tool updates breaking locations with an // ignore: , unblocking the roll
we separately revisit each // ignore:  and update the code to avoid the lint violation

This is oversimplified, of course. Adding `// ignore:`` comments only works within the engine or frameworks codebase, but is not possible to use with third-party packages that are developed elsewhere. For the same reason, the tool couldn't be a dart-fix that directly addresses all the violations (to basically combine it with the last step). We also don't want to disable a lint, to prevent other violations from sneaking in. Instead, it's quite likely we need an external mechanism in the linter/analyzer tools to allowlist violations without modifying the code.
FWIW, I wouldn't do this automatically. Unintentional changes happen and some lints are not meant to be broken. So we probably want a short manual process to trigger the use of these tools. I'd also like the tooling here to create and link an issue with the allowlist changes to track all follow up work.

@sigmundch What do you think of a bot-assisted technique, similar to what @mraleph did for symbolizer bot?
I.e.

@fluttergithubbot allow-list-violations-of: avoid_legacy_foo

@matanlurey - can you share a bit more, I'm not familiar with the symbolizer work. Generally speaking, I like the idea of the bots doing most of the work, as long as it requires some trigger from either the upstream change author (e.g. a tag line in the commit) or a build sheriff (through some dashboard button or similar action)

https://github.com/flutter-symbolizer-bot, perhaps we could get @mraleph to do a tech talk :)

https://github.com/flutter-symbolizer-bot, perhaps we could get @mraleph to do a tech talk :)

I am happy to give a talk - but the most important experience I have currently is that somebody in EngProd needs to own all bots, e.g. flutter-symbolizer-bot has just fallen effectively offline because I don't keep it running.

Options how the tech debt on dashboard can be handled:

Rotation (gardener?)
TVC
AI
Combination of above

Anything missed?

I was thinking about this a bit yesterday. I had one idea to make the ignore_deprecated diagnostic configurable, so you could do something like this in the analysis_options file:
diagnostics:
  deprecated_member_use:
    ignore-deprecated:
      - 'package:foo/main_lib.dart?MyClass.baz'

But that does involve plumbing things through from lower in the stack, and may only be used for this use case.
Another idea was to generate a markdown report from the repo code, have that file checked in, and validate that it's up-to-date via the CI. I didn't really finish that thought as I wasn't 100% sure it would address all the problems here.
However, what I think might work is to:

re-enable the deprecated_member_use diagnostic - it will now warn (again) on all deprecated use sites
allow deprecations to be ignored via // ignore: deprecated_member_use
only allow ignores of the form // ignore: deprecated_member_use #issue_id
validate (via a script run on the CI) that any ignores of deprecations follow the above format and that the referenced issue exists
have a business process that the ignore issues are reviewed periodically, and for ones that have concrete owners those owners follow up on the agreed on work

Thanks for the ideas Devon!
I'm worried that any process that will take a significant investment into custom CI workflows is not something we can guarantee right now (for reasons). I'm wondering if it would be sufficient to write a script that showed the delta of (essentially) flutter analyze . with deprecated_members_use re-enabled, as that would be something we could do now versus much much later.

authors: devoncarew matanlurey mraleph polina-c sigmundch


text:
@derekvawdrey

          @derekvawdrey

You can also try the ImageNetwork package in case of CORS errors; this will solve the issue. Note that cachedNetwork doesn’t work on the web, but it doesn’t cause any problems either.

You can also try using Image.network with cachedWidth or cachedHeight; sometimes this works. If you don’t have any issues while downloading images,

you could also try using floor or hive to locally store your images and then display them to the user (first load from the API to hive, then display from hive).

Based on your problem, I think Image.network with cachedWidth will solve your issue:
cachedWidth: (width * MediaQuery.of(context).devicePixelRatio).round()
Originally posted by @AkshaySavanoorCC in https://github.com/flutter/flutter/issues/151933#issuecomment-2251984139

Tried all the above suggestions but the issue still persists!
The application crashes when attempting to render images on iOS web browsers. We tried various methods including CachedNetworkImage, Image.network, Image.asset, NetworkImage, and loading images via HTTP and HTMLImage. Below are our observations:
Image.asset: Fails on iOS web. Works on Android web, but the image doesn't load unless cacheWidth is added, then it loads.
Image.network: Fails on iOS web. Works on Android web, but the image doesn't load unless cacheWidth is added, then it loads.
CachedNetworkImage: Fails on iOS web. Works on Android web.
NetworkImage: Fails on iOS web. Works on Android web with heavy lag.
HTMLImage: Fails on iOS web. Works on Android web.
Loading from Hive: Fails on iOS web. Works on Android web.
Please HELP!!

Hey @drnko are you facing this issue while loading the large images or it fails irrespective of the image size.

check: https://github.com/flutter/flutter/issues/151933#issuecomment-2251970488

check: #151933 (comment)

Thanks for your concern. We do not want to use the 3rd party dependency storage for uploading/retrieving. The issue still persists even after resizing the images.

@drnko, Hi, I have checked the app, and it looks great. Great work! I believe the infinite carousel in the header might be causing the issue. Please try using a normal list view instead of the infinite carousel and test it in an iOS browser for verification

authors: akshaySavanoor drnko


text:
Google Signin Issue

I copied my root folder of project in other drive (removed my ssd and copied project to my hdd) . This was followed by installing packages and flutter upgrade.
Now if i run app, i get gmail accounts list but after selecting account , I am not able to login and proceed
Error messages
Restarted app in 3,497ms.
[ +292 ms] I/HwPointEventFilter(29919): do not support AFT because of no config
[+2138 ms] I/FlutterActivityDelegate(29919): onResume setting current activity to this
[  +44 ms] E/flutter (29919): [ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
[   +2 ms] E/flutter (29919): PlatformException(status, Status{statusCode=DEVELOPER_ERROR, resolution=null}, null)
[        ] E/flutter (29919): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:547:7)
[        ] E/flutter (29919): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:279:18)
[        ] E/flutter (29919):
[        ] E/flutter (29919): #2      GoogleSignIn._callMethod (package:google_sign_in/google_sign_in.dart:156:58)
[   +1 ms] E/flutter (29919):
[        ] E/flutter (29919): #3      GoogleSignIn._addMethodCall (package:google_sign_in/google_sign_in.dart:180:20)
[        ] E/flutter (29919): #4      GoogleSignIn.signIn (package:google_sign_in/google_sign_in.dart:237:43)
[        ] E/flutter (29919): #5      LoginPageState.initState (file:///C:/Users/Muhammad%20Zeeshan/Desktop/cdapp/lib/main.dart:53:19)
[        ] E/flutter (29919): #6      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3743:58)
[        ] E/flutter (29919): #7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
[        ] E/flutter (29919): #8      Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
[        ] E/flutter (29919): #9      Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
[        ] E/flutter (29919): #10     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
[        ] E/flutter (29919): #11     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
[        ] E/flutter (29919): #12     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
[        ] E/flutter (29919): #13     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
[        ] E/flutter (29919): #14     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
[        ] E/flutter (29919): #15     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
[        ] E/flutter (29919): #16     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
[        ] E/flutter (29919): #17     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
[        ] E/flutter (29919): #18     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
[        ] E/flutter (29919): #19     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
[        ] E/flutter (29919): #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
[        ] E/flutter (29919): #21     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
[        ] E/flutter (29919): #22     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
[        ] E/flutter (29919): #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
[        ] E/flutter (29919): #24     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
[        ] E/flutter (29919): #25     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
[        ] E/flutter (29919): #26     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
[        ] E/flutter (29919): #27     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
[        ] E/flutter (29919): #28     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4646:14)
[   +1 ms] E/flutter (29919): #29     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
[        ] E/flutter (29919): #30     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
[        ] E/flutter (29919): #31     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
[   +1 ms] E/flutter (29919): #32     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
[        ] E/flutter (29919): #33     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
[        ] E/flutter (29919): #34     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3761:11)
[        ] E/flutter (29919): #35     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
[        ] E/flutter (29919): #36     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
[        ] E/flutter (29919): #37     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
[        ] E/flutter (29919): #38     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3645:16)
[        ] E/flutter (29919): #39     Element.rebuild (package:flutter/src/widgets/framework.dart:3487:5)
[        ] E/flutter (29919): #40     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3614:5)
[        ] E/flutter (29919): #41     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3609:5)
[        ] E/flutter (29919): #42     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2899:14)
[        ] E/flutter (29919): #43     Element.updateChild (package:flutter/src/widgets/framework.dart:2702:12)
[        ] E/flutter (29919): #44     ComponentElement.performRebuild (packag
Flutter Doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v0.3.1, on Microsoft Windows [Version 10.0.16299.98], locale en-PK)
[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[√] Android Studio (version 3.1)
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
[√] VS Code, 64-bit edition (version 1.22.2)
[√] Connected devices (1 available)
• No issues found!

In my case it was a SHA mismatch as said in https://github.com/flutter/flutter/issues/12819

Sorry for the late response.
Is this still an issue with recent Flutter versions?
You might need to delete the files and directories that are listed in the various .gitignore files (project root directory, ios/, android/)

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.

authors: engr-zeeshan josefigueredo zoechi


text:
Flutter crashes after released ios

0 libsystem_platform.dylib	_platform_memmove + 108
1 AGXGLDriver	gldGetDeviceString + 67000
2 AGXGLDriver	gldGetDeviceString + 67000
3 AGXGLDriver	gldUpdateDispatch + 28612
4 AGXGLDriver	gldGetDeviceString + 71552
5 AGXGLDriver	gldPresentFramebufferData + 70364
6 GLEngine	_glTexSubImage2D_Exec + 1664
7 OpenGLES	glTexSubImage2D + 108
8 Flutter	GrGLGpu::uploadTexData(GrPixelConfig, int, int, GrSurfaceOrigin, unsigned int, GrGLGpu::UploadType, int, int, int, int, GrPixelConfig, GrMipLevel const*, int, GrMipMapsStatus*) + 1724
9 Flutter	GrGLGpu::onWritePixels(GrSurface*, GrSurfaceOrigin, int, int, int, int, GrColorType, GrMipLevel const*, int) + 480
10 Flutter	GrGpu::writePixels(GrSurface*, GrSurfaceOrigin, int, int, int, int, GrColorType, void const*, unsigned long) + 296
11 Flutter	_ZNSt3__110__function6__funcIZN14GrOpFlushState8doUploadERNS_8functionIFvRNS3_IFbP14GrTextureProxyiiii11GrColorTypePKvmEEEEEEE3$_0NS_9allocatorISF_EES9_EclEOS5_OiSK_SK_SK_OS6_OS8_Om + 512
12 Flutter	std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>::operator()(GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long) const + 88
13 Flutter	GrDrawOpAtlas::Plot::uploadToTexture(std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&, GrTextureProxy*) + 320
14 Flutter	GrOpFlushState::doUpload(std::__1::function<void (std::__1::function<bool (GrTextureProxy*, int, int, int, int, GrColorType, void const*, unsigned long)>&)>&) + 84
15 Flutter	GrOpFlushState::preExecuteDraws() + 52
16 Flutter	GrDrawingManager::internalFlush(GrSurfaceProxy*, GrResourceCache::FlushType, int, GrBackendSemaphore*) + 2092
17 Flutter	GrDrawingManager::prepareSurfaceForExternalIO(GrSurfaceProxy*, int, GrBackendSemaphore*) + 132
18 Flutter	GrRenderTargetContext::prepareForExternalIO(int, GrBackendSemaphore*) + 272
19 Flutter	_ZNSt3__110__function6__funcIZN5shell12GPUSurfaceGL12AcquireFrameERK7SkISizeE3$_0NS_9allocatorIS7_EEFbRKNS2_12SurfaceFrameEP8SkCanvasEEclESC_OSE_ + 360
20 Flutter	shell::Rasterizer::DrawToSurface(flow::LayerTree&) + 372
21 Flutter	shell::Rasterizer::DoDraw(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >) + 44
22 Flutter	std::__1::__function::__func<std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&>, std::__1::allocator<std::__1::__bind<void (shell::Rasterizer::*)(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >), shell::Rasterizer*, std::__1::placeholders::__ph<1> const&> >, void (std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >)>::operator()(std::__1::unique_ptr<flow::LayerTree, std::__1::default_delete<flow::LayerTree> >&&) + 60
23 Flutter	shell::Rasterizer::Draw(fxl::RefPtr<flutter::Pipeline<flow::LayerTree> >) + 516
24 Flutter	_ZNSt3__110__function6__funcIZN5shell5Shell14OnAnimatorDrawERKNS2_8AnimatorEN3fxl6RefPtrIN7flutter8PipelineIN4flow9LayerTreeEEEEEE4$_22NS_9allocatorISF_EEFvvEEclEv + 76
25 Flutter	fml::MessageLoopImpl::RunExpiredTasks() + 2428
26 Flutter	fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) + 32
27 CoreFoundation	___CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
28 CoreFoundation	___CFRunLoopDoTimer + 864
29 CoreFoundation	___CFRunLoopDoTimers + 248
30 CoreFoundation	___CFRunLoopRun + 2168
31 CoreFoundation	CFRunLoopRunSpecific + 552
32 Flutter	fml::MessageLoopDarwin::Run() + 88
33 Flutter	_ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEZN3fml6ThreadC1ERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEE3$_0EEEEEPvSJ_ + 272
34 libsystem_pthread.dylib	__pthread_body + 272
35 libsystem_pthread.dylib	__pthread_body

[✓] Flutter (Channel unknown, v0.3.5, on Mac OS X 10.12.6 16G1314, locale zh-Hans-CN)
    • Flutter version 0.3.5 at /Users/mayonghui/Desktop/workspace/flutter
    • Framework revision 7ffcd3d22d (3 weeks ago), 2018-04-24 14:03:41 -0700
    • Engine revision ec611470b5
    • Dart version 2.0.0-dev.48.0.flutter-fe606f890b

[✗] 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.io/setup/#android-setup for detailed instructions).
      If Android SDK has been installed to a custom location, set $ANDROID_HOME to that location.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.0, Build version 9A235
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.2

[✗] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.io/setup/#android-setup for detailed instructions).

[✓] IntelliJ IDEA Community Edition (version 2018.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 24.2.2
    • Dart plugin version 181.4892.1

[✓] VS Code (version 1.23.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Dart Code extension version 2.12.1

[✓] Connected devices (1 available)
    • iPhone X • AD23741A-F070-4E65-AC73-AEAA7DB162A4 • ios • iOS 11.0 (simulator)

I heard it was repaired


text:
Flutter has weird bottom padding space in NestedScrollView class example

I just copy the example code in NestedScrollView class and it has a small space bottom padding in my app.
class DemoTab extends StatefulWidget {
  @override
  DemoState createState() => DemoState();
}

class DemoState extends State<DemoTab> {
  double maxScroll = 0.0;
  List<String> _tabs = List.generate(3, (i) => "$i");

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body:  new DefaultTabController(
          length: _tabs.length, // This is the number of tabs.
          child: new NestedScrollView(
            headerSliverBuilder:
                (BuildContext context, bool innerBoxIsScrolled) {
              // These are the slivers that show up in the "outer" scroll view.
              return <Widget>[
                new SliverOverlapAbsorber(
                  // This widget takes the overlapping behavior of the SliverAppBar,
                  // and redirects it to the SliverOverlapInjector below. If it is
                  // missing, then it is possible for the nested "inner" scroll view
                  // below to end up under the SliverAppBar even when the inner
                  // scroll view thinks it has not been scrolled.
                  // This is not necessary if the "headerSliverBuilder" only builds
                  // widgets that do not overlap the next sliver.
                  handle:
                      NestedScrollView.sliverOverlapAbsorberHandleFor(context),
                  child: new SliverAppBar(
                    title: const Text('Books'),
                    // This is the title in the app bar.
                    pinned: true,
                    expandedHeight: 150.0,
                    // The "forceElevated" property causes the SliverAppBar to show
                    // a shadow. The "innerBoxIsScrolled" parameter is true when the
                    // inner scroll view is scrolled beyond its "zero" point, i.e.
                    // when it appears to be scrolled below the SliverAppBar.
                    // Without this, there are cases where the shadow would appear
                    // or not appear inappropriately, because the SliverAppBar is
                    // not actually aware of the precise position of the inner
                    // scroll views.
                    forceElevated: innerBoxIsScrolled,
                    bottom: new TabBar(
                      // These are the widgets to put in each tab in the tab bar.
                      tabs: _tabs
                          .map((String name) => new Tab(text: name))
                          .toList(),
                    ),
                  ),
                ),
              ];
            },
            body: new TabBarView(
              // These are the contents of the tab views, below the tabs.
              children: _tabs.map((String name) {
                return new SafeArea(
                  top: false,
                  bottom: false,
                  child: new Builder(
                    // This Builder is needed to provide a BuildContext that is "inside"
                    // the NestedScrollView, so that sliverOverlapAbsorberHandleFor() can
                    // find the NestedScrollView.
                    builder: (BuildContext context) {
                      return new CustomScrollView(
                        // The "controller" and "primary" members should be left
                        // unset, so that the NestedScrollView can control this
                        // inner scroll view.
                        // If the "controller" property is set, then this scroll
                        // view will not be associated with the NestedScrollView.
                        // The PageStorageKey should be unique to this ScrollView;
                        // it allows the list to remember its scroll position when
                        // the tab view is not on the screen.
                        key: new PageStorageKey<String>(name),
                        slivers: <Widget>[
                          new SliverOverlapInjector(
                            // This is the flip side of the SliverOverlapAbsorber above.
                            handle: NestedScrollView
                                .sliverOverlapAbsorberHandleFor(context),
                          ),
                          new SliverPadding(
                            padding: const EdgeInsets.all(8.0),
                            // In this example, the inner scroll view has
                            // fixed-height list items, hence the use of
                            // SliverFixedExtentList. However, one could use any
                            // sliver widget here, e.g. SliverList or SliverGrid.
                            sliver: new SliverFixedExtentList(
                              // The items in this example are fixed to 48 pixels
                              // high. This matches the Material Design spec for
                              // ListTile widgets.
                              itemExtent: 48.0,
                              delegate: new SliverChildBuilderDelegate(
                                (BuildContext context, int index) {
                                  // This builder is called for each child.
                                  // In this example, we just number each list item.
                                  return new ListTile(
                                    title: new Text('Item $index'),
                                  );
                                },
                                // The childCount of the SliverChildBuilderDelegate
                                // specifies how many children this inner list
                                // has. In this example, each tab has a list of
                                // exactly 30 items, but this is arbitrary.
                                childCount: 30,
                              ),
                            ),
                          ),
                        ],
                      );
                    },
                  ),
                );
              }).toList(),
            ),
          ),
        ),
    );
  }
}

Flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v0.5.1, on Microsoft Windows [Version 10.0.17134.165], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[√] Android Studio (version 3.1)
[!] IntelliJ IDEA Community Edition (version 2018.1)
    X Flutter plugin not installed; this adds Flutter specific functionality.
[√] Connected devices (1 available)

! Doctor found issues in 1 category.

@phucgaoxam How did you fix this?

I have this problem aswell. Cant seem to remove the padding, Not even with MediaQuery.removePadding on any part in this example.

I fixed this issue by switching to the master branch of Flutter. It seems to be fixed

@phucgaoxam can you share how did u resolve this?

The tabview height is the same screen's height. So you just need to check if the list's height and the header's height is smaller than screen's height, you can block the scrolling.

authors: FogelAO Henkvanslochteren devibrahimkarahan nhunghuynhthihong phucgaoxam


text:
No valid Android SDK platforms found in C:\Android\android-sdk\platforms. Directory was empty.

when I first opened the adnroid-sdk folder, platforms wasn't there, but when I copied and paste from directory "C:\Android\android-sdk", I get this error.
No valid Android SDK platforms found in C:\Android\android-sdk\platforms. Candidates were:
- android-22
- android-23
- android-24
- android-25
- android-26
- android-27
- android-28
I'm not sure what's wrong.

Sounds like you didn't properly install it. You can either use Android Studio to install and update the Android SDK or use sdkmanager.
I don't think we want to support installations with manually copied directories.
Please consider asking support questions in one of the other channels listed at http://flutter.io/support .

I know that this is closed, but I had the same problem and I managed to figure out what was wrong. This is for OP or anyone else Googling their way to this thread. Using sdkmanager "build-tools;28.0.3" fixed the problem for me. I hadn't included this in the beginning.
You may use the latest version of build-tools available.

@Vivek-Raman you might want to add this as answer to https://stackoverflow.com/questions/53986067/no-valid-android-sdk-platforms (there might be other related SO questions, also not Flutter related ones)

Vivek, how did you use sdkmanager "build-tools;28.0.3" to fix this issue?

I've set up my Android SDK manually with the command line, and I was able to solve this kind of errors while I tried to set up my development environment, if you want to solve it as I did, just follow the next steps:
In my case I did the process in Windows 10.
1. Download SDK here: https://developer.android.com/studio

2. Save and Unzip the file in a new folder, this will be your Android SDK folder, like this:

3. In your new Android SDK folder go to -> tools -> bin. Open a command line here Shift + Right-click  and click to Open PowerShell window here and then ...

... run this command:
.\sdkmanager.bat "platforms;android-28" "platform-tools" "build-tools;28.0.3"
After that you will see these new folders and files:

Now, you have the last version of build-tools, platform-tools, and a platform. If you want to download other available packages you can list them using .\sdkmanager.bat --list. For more information about this command go to sdkmanager.
4. Finally, set up your PATH variable adding this new packages:

Now you can check your flutter running flutter doctor and you will see something like this!

If this message appears, don't be panic!

Just run this command:
flutter doctor --android-licenses
I hope this can help anyone need it! Bye!

Vivek, how did you use sdkmanager "build-tools;28.0.3" to fix this issue?

Hi! Go to the answer I just wrote, maybe it can help you.
https://github.com/flutter/flutter/issues/25397#issuecomment-460216748

He configurado mi SDK de Android manualmente con la línea de comandos, y pude resolver este tipo de errores mientras intentaba configurar mi entorno de desarrollo. Si quiere resolverlo como lo hice, siga los siguientes pasos:
En mi caso hice el proceso en Windows 10.
1. Descargue el SDK aquí: https://developer.android.com/studio

2. Guarde y descomprima el archivo en una nueva carpeta, esta será su carpeta SDK de Android, como esta:

3. En su nueva carpeta de Android SDK vaya a -> herramientas -> bin. Abra una línea de comando aquí Shift + Right-click y haga clic para Open PowerShell window herey luego ...

... ejecute este comando:
.\sdkmanager.bat "platforms;android-28" "platform-tools" "build-tools;28.0.3"
Después de eso verás estas nuevas carpetas y archivos:

Ahora, tiene la última versión de herramientas de construcción, herramientas de plataforma y una plataforma. Si desea descargar otros paquetes disponibles puede listarlos usando .\sdkmanager.bat --list. Para obtener más información sobre este comando, vaya a sdkmanager .
4. Finalmente, configure su variable PATH agregando estos nuevos paquetes:

¡Ahora puedes revisar tu flutter flutter doctory verás algo como esto!

Si aparece este mensaje, ¡no se asuste!

Simplemente ejecuta este comando:
flutter doctor --android-licenses
Espero que esto pueda ayudar a que alguien lo necesite! ¡Adiós!

Funcionó perfectamente, muchas gracias.

authors: RukaiJohn Vivek-Raman ipereto jasson1010 zoechi


text:
Shake gesture

This might be crazy.
Can we implement a shake gesture for GestureDetector?
I'm thinking a pointer touches down then goes left to right (or vice versa or even up to down or vice versa) and back again several (three?) times in a short period of time.

You should be able to write your own gesture recognizer for that gesture.  That's a fairly uncommon gesture and so might be a good way to explore custom gesture recognizers.  We should probably create a widget that helps you use custom gesture recognizers.
/cc @Hixie

Yeah. To do this, you'd implement a GestureRecognizer subclass, and then provide the right bits to RawGestureDetector to create and maintain one. See GestureDetector's implementation for how to do that latter bit, and follow the breadcrumps to the existing gesture detectors for hints on how to write those.

Okay, sounds good!

authors: Hixie abarth apwilson


text:
ShaderMask unexpected positioning behaviour

Might be related to #10424, but I'm getting a weird behaviour when using ShaderMask.
I'd expect the following code to render a red square masked by a radial gradient centered on its top left corner:
void main() => runApp(
  Center(
    child: SizedBox(
      width: 250,
      height: 250,
      child: ShaderMask(
        blendMode: BlendMode.dstIn,
        shaderCallback: (Rect r) =>
            RadialGradient(
                center: Alignment.topLeft,
                colors: [Colors.black, Colors.black38]
            ).createShader(r),
        child: Container(color: Colors.red,),
      ),
    ),
  ),
);

However this is what I'm getting:

It looks like the distance between the gradient center and the top left corner of the square is the same as the distance between the top left corner of the square and the top left corner of the screen.
With such hypothesis in mind, modifying the previous code to:
void main() => runApp(
  Center(
    child: SizedBox(
      width: 250,
      height: 250,
      child: ShaderMask(
        blendMode: BlendMode.dstIn,
        shaderCallback: (Rect r) =>
            RadialGradient(
                center: Alignment.topLeft,
                colors: [Colors.black, Colors.black38]
            ).createShader(r.translate(-r.left, -r.top)), // CHANGE: move to origin
        child: Container(color: Colors.red,),
      ),
    ),
  ),
);

Results in:

Which looks like what I'd be expecting. It seems like the Rect instances passed to shaderCallback are not relative to its enclosing ShaderMask widget.

I can confirm this issue. Problem is, if you change it now, you will break code that depends on this broken behavior, though I'm all for it!

Just hit on this wall too. I'd go for a break change but make the behaviour inline with the remaining apis.

This problem still exists in version 1.7.8, my approach to transforming the coordinate relative to the target object
              shaderCallback: (Rect bounds) {
               // transfrom coordinate manually
                var right = bounds.right - bounds.left;
                bounds = Rect.fromLTRB(0, bounds.top, right, bounds.bottom);

                return LinearGradient(
                      begin: Alignment.centerLeft,
                      end: Alignment.centerRight,
                    tileMode:TileMode.repeated,
                      stops: [
                    0,
                    0.1,
                    0.9,
                        1
                  ],
                      colors: [
                    Colors.white.withAlpha(0),
                    Colors.white,
                        Colors.white,
                        Colors.white.withAlpha(0),
                  ]).createShader(bounds);},

Tested code sample on latest Stable on Android device and confirmed that I get below positioning behavior, which is what was expected mentioned here.

Closing this as fixed. If you think this was closed by mistake or should be kept open, please write in comments and I'll reopen.

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.2, on Mac OS X 10.15.4 19E2269, locale en-IN)
    • Flutter version 1.22.2 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 84f3d28555 (4 days ago), 2020-10-15 16:26:19 -0700
    • Engine revision b8752bbfff
    • Dart version 2.10.2

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0.1, Build version 12A7300
    • CocoaPods version 1.9.3

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (1 available)
    • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios
      • iOS 14.0

• No issues found!

authors: danieldai darshankawar gabrielhuff sir-boformer vitor-gyant


text:
Error after selecting dropdownmenu - data from sqflite

...You can view my code at https://github.com/stahlie/pilotvoice       I'm having trouble with selecting item from dropdownmenu.   As you can see in CustomScreen.dart, there's futurebuilder.   so whenever I select the item from Airport name listing (this dropdownmenu is the only one retrieving datas from Sqflite database)...

This is what it originally looks like....

I pressed the Airport dropdown menu and got the listing of Airport Name (It was retrieved from database)

After selecting an item from the list...it produced this error..

Here's the error log:
I/flutter (27661): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (27661): The following assertion was thrown building FutureBuilder<List>(dirty, state:
I/flutter (27661): _FutureBuilderState<List>#f9fc2):
I/flutter (27661): 'package:flutter/src/material/dropdown.dart': Failed assertion: line 560 pos 15: 'items == null ||
I/flutter (27661): items.isEmpty || value == null || items.where((DropdownMenuItem item) => item.value ==
I/flutter (27661): value).length == 1': is not true.
I/flutter (27661):
I/flutter (27661): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter (27661): more information in this error message to help you determine and fix the underlying cause.
I/flutter (27661): In either case, please report this assertion by filing a bug on GitHub:
I/flutter (27661):   https://github.com/flutter/flutter/issues/new?template=BUG.md
2. ...
3. ...
Logs

C:\Users\Matt\AndroidStudioProjects\pilotvoice>flutter doctor -v
[√] Flutter (Channel stable, v1.2.1, on Microsoft Windows [Version 10.0.17134.706], locale en-US)
    • Flutter version 1.2.1 at C:\src\flutter
    • Framework revision 8661d8aecd (3 months ago), 2019-02-14 19:19:53 -0800
    • Engine revision 3757390fa4
    • Dart version 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at C:\Users\Matt\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[√] Android Studio (version 3.4)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 35.2.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[!] VS Code (version 1.30.2)
    • VS Code at C:\Users\Matt\AppData\Local\Programs\Microsoft VS Code
    X Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (1 available)
    • SM G950U • 9887e048383342515a • android-arm64 • Android 8.0.0 (API 26)

! Doctor found issues in 1 category.

Hmm.. looks like the dropdown doesn't accept null value items. cleaning the list could be a solution.  in line 69 add the .where((eachItem)=>eachItem != null).toList() as the following

                      FutureBuilder>(
                        future: db.getAllAirports(),
                        builder: (BuildContext context, AsyncSnapshot> snapshot) {
                          if (!snapshot.hasData) return CircularProgressIndicator();
                           return DropdownButton(items: snapshot.data.map((airportItem) =>
                                DropdownMenuItem(
                                  child: Text(airportItem.airportName),
                                  value: airportItem,
                                ))
                                .where((eachItem)=>eachItem != null).toList(),// will clean list from null values.
                            onChanged: (AirportModel value) {
                              setState(() {
                                if (snapshot.hasData) debugPrint(
                                    "--------- snapshot is ${snapshot.data}");
                                _currentAirport = value;
                                selectedAirport = _currentAirport.airportName;
                              });
                            },
                            value: _currentAirport,
                            hint: Text("Airport"),
                          );
}),

Thanks.  I added it and it still give me the same error.  The first time dropdownmenu populated the list with the data from db.getAllAirports() without any problem as you can see the 2nd screenshot above.  What's interesting is that whenever I select the item in that airport, it refired the db.getAllAirports() .
Anyway... the error is actually coming from dropdown.dart in line 560 (here's the code):
assert(items == null || items.isEmpty || value == null || items.where((DropdownMenuItem item) => item.value == value).length == 1),
assert(elevation != null),
assert(iconSize != null),
assert(isDense != null),
assert(isExpanded != null),
super(key: key);
I can't figure out what is creating the null.  This is where I've been stuck and couldn't figure out what I'm doing wrong.

Aha! i noticed that in the dropdown.dart line 629 says the hint displays if the value is null. so if you show the hint only when the selected value is null could be the solution. check out this

                 FutureBuilder>(
                        future: db.getAllAirports(),
                        builder: (BuildContext context, AsyncSnapshot> snapshot) {
                          if (!snapshot.hasData) return CircularProgressIndicator();
                           return DropdownButton(items: snapshot.data.map((airportItem) =>
                                DropdownMenuItem(
                                  child: Text(airportItem.airportName),
                                  value: airportItem,
                                )).toList()
                            onChanged: (AirportModel value) {
                              setState(() {
                                if (snapshot.hasData) debugPrint(
                                    "--------- snapshot is ${snapshot.data}");
                                _currentAirport = value;
                                selectedAirport = _currentAirport.airportName;
                              });
                            },
                            value: _currentAirport,
                            hint: _currentAirport == null ? Text("Airport") : null, // show hint only when there is no selected vlaue
                          );
}),

Thanks again.  It didn't solve the problem .  What I did was commented out the 'value:' line just above the 'hint:' line and the error didn't happen.  However it won't show the Selected Airport in the "hint" part.    Hmm...I suspected that it has to do with Model variable in the value: line .  I'm used to String value when it come to dropdownmenu but this is Model value.   Not sure how to resolve that.  Make sense?

Hello @stahlie !
Did you manage to solve the issue? Does the problem still persist in the latest stable version?

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.

authors: BaderEddineOuaich iapicca janmoppel stahlie


text:
'connectivity' using deprecated API

Note: C:\flutter.pub-cache\hosted\pub.dartlang.org\connectivity-0.4.3+2\android\src\main\java\io\flutter\plugins\connectivity\ConnectivityPlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

Duplicate of #29770

I have created a pr to fix this issue in flutter/plugins PR #1822

authors: danwulff hey24sheep kmusham


text:
[google_maps_flutter] Marker InfoWindow title text is not visible on iOS 13 with Dark Mode enabled

Steps to Reproduce

Tested on Simulator and iPhone XS w/ iOS 13.

Enable Dark Mode in settings.
Run sample code, tap Marker. InfoWindow title will be blank (white text on white bg)
Disable Dark Mode in settings.
Click Marker again. Text appears normally.

Note: InfoWindow snippet appears correctly in either mode:

Code to reproduce
main.dart
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

void main() => runApp(MyApp());

const LOCATION = LatLng(45.423733, -75.6987);

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: GoogleMap(
      initialCameraPosition: CameraPosition(target: LOCATION, zoom: 16),
      markers: {
        Marker(
            markerId: MarkerId('test'),
            position: LOCATION,
            infoWindow: InfoWindow(title: 'I am a marker!'))
      },
    ));
  }
}

Google Maps plugin version
google_maps_flutter:
    dependency: "direct main"
    description:
      name: google_maps_flutter
      url: "https://pub.dartlang.org"
    source: hosted
    version: "0.5.21+2"

flutter doctor
[✓] Flutter (Channel dev, v1.10.5, on Mac OS X 10.14.6 18G95, locale en-CA)
    • Flutter version 1.10.5 at /Users/ryan/Documents/flutter
    • Framework revision 3cf88fed6d (2 days ago), 2019-09-18 23:09:41 -0400
    • Engine revision 33ad6757e8
    • Dart version 2.6.0 (build 2.6.0-dev.0.0 cb80ea7ba9)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/ryan/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.0, Build version 11A420a
    • CocoaPods version 1.7.4

[!] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

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

[✓] Connected device (1 available)
    • iPhone 11 Pro Max • 440E0415-7103-44C6-8254-E1BEF94943E3 • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-0 (simulator)

! Doctor found issues in 1 category.

@mklim @iskakaushik

@escamoteur, which customer:  label should be applied here?

Also tested on Android 10 emulator w/ Dark Theme enabled and the InfoWindow title text is visible as expected.

I don't always add one. Only if its obvious. Am 20.09.2019 18:59 schrieb Michael Klimushyn notifications@github.com:@escamoteur, which customer:  label should be applied here?
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

@escamoteur got it, thanks. In that case I'm going to remove the label following Issue hygiene:

(Bugs marked "customer blocker" or "customer critical" must have the corresponding customer label as well, so that we know who is actually asking for the issue.)

It worked. Thanks

What did you change?

@evertonfoz were you able to get the example working?

@escamoteur I updated Xcode to the latest version and ios to version 13

@RyanRamchandar Yes, I updated XCode and iOS and just copied the @escamoteur code. I was just in doubt to change InfoTitle to a color that is displayed in dark mode

@evertonfoz can you post your flutter doctor -v

Sure @RyanRamchandar
[✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Mac OS X 10.14.6 18G95, locale pt-BR)
• Flutter version 1.9.1+hotfix.2 at /Users/evertoncoimbradearaujo/flutter
• Framework revision 2d2a1ffec9 (2 weeks ago), 2019-09-06 18:39:49 -0700
• Engine revision b863200c37
• Dart version 2.5.0
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at /Users/evertoncoimbradearaujo/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.0, Build version 11A420a
• CocoaPods version 1.7.5
[✓] Android Studio (version 3.5)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 39.0.3
• Dart plugin version 191.8423
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
[!] VS Code (version 1.34.0)
• VS Code at /Applications/Visual Studio Code.app/Contents
✗ Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[!] Connected device
! No devices available
! Doctor found issues in 2 categories.

@evertonfoz how were you able to get around #37699 and deploy to a device on flutter stable branch (1.9.1+hotfix.2)? I had to switch to the dev branch to even just deploy to my phone. I am thinking this might be reason for the missing InfoWindow text.

Hello @RyanRamchandar . To run on iOS I used 1.9. But I was having various version issues for android and on another machine, I needed to change the branch to dev too. But it was related to versions of Kotlin and Gradle. Some like this https://stackoverflow.com/questions/54693595/flutter-the-android-gradle-plugin-supports-only-kotlin-gradle-plugin-version-1

@RyanRamchandar #37699  should be fixed with the latest master. please give it a try and report back.

Hello @RyanRamchandar and @escamoteur . Now I was trying to deploy to an iPhone XR, with iOS 13 and the #37699 problem appeared.
I opened the project in XCode and it worked.
I returned to Android Studio and the #37699 error continued.
Perform flutter upgrade and still it was no use.
Do I need to change the branch to dev?

could you please give it a try from VS code? This is pretty strange and should be solved although there seems to be another problem with the XR does this https://github.com/flutter/flutter/issues/40448 look familiar?
Have you tried it with another model?

@escamoteur The problem also occurs by VS Code.
Unfortunately I have no model other than XR to test. Recommend changing the branch to dev?
This was also the first problem I had with XR.

What happens if you use the Simulator? Am 23.09.2019 16:53 schrieb evertonfoz notifications@github.com:@escamoteur The problem also occurs by VS Code.
Unfortunately I have no model other than XR to test. Recommend changing the branch to dev?
This was also the first problem I had with XR.
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

@escamoteur After the upgrade of XCode appear only simulators of Iphone 11 and with it also works.

@escamoteur @evertonfoz I'll try to summarize my results here (the three test variables being flutter channel, device and IDE):
Test Variables
Flutter channels:

stable: Flutter (Channel stable, v1.9.1+hotfix.2, on Mac OS X 10.14.6 18G95, locale en-CA)
dev: Flutter (Channel dev, v1.10.5, on Mac OS X 10.14.6 18G95, locale en-CA)

Devices:

iPhone 11 Pro Max • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-0 (simulator)
iPhone XS • ios • iOS 13.0 (physical device)

IDEs:

IntelliJ 2019.3 EAP (Flutter plugin: 39.0.5, Dart plugin: 193.3519.31)
Xcode 11.0, Build version 11A420a

Results
Flutter channel stable:

iPhone 11 Pro Max (simulator)

IntelliJ: App launches and InfoWindow text title is not visible in dark mode.
Xcode 11: App launches and InfoWindow text title is not visible in dark mode.

iPhone XS

IntelliJ: app does not run due to #37699
Xcode: App launches and InfoWindow text title is not visible in dark mode.

Flutter channel dev:

iPhone 11 Pro Max (simulator)

IntelliJ: App launches and InfoWindow text title is not visible in dark mode.
Xcode 11: App launches and InfoWindow text title is not visible in dark mode.

iPhone XS

IntelliJ: App launches and InfoWindow text title is not visible in dark mode. However, no debugs are appearing, which I believe is #40448
Xcode: App launches and InfoWindow text title is not visible in dark mode. However, no debugs are appearing, which I believe is #40448

@RyanRamchandar @escamoteur I apologize for the inattention to reading in a previous post of @escamoteur
.
I changed the channel to master and was able to deploy and install.
But the dark mode problem persists.

@evertonfoz Okay, thanks for confirming that the issue still exists for you.

@matthew-carroll should this issue be added to the Cupertino Dark Mode project?

Couldn't hurt. I'll tag it.

Has any workaround been found for this Dark mode problem?

@davystrong not to my knowledge.

First of all infoWindow should be proper Widget
If not possible then add simple 2 Text Widgets or at least expose some styling

Maps SDK for iOS v3.5.0 contains the fix for this: https://developers.google.com/maps/documentation/ios-sdk/releases#version_350_-_october_08_2019
@matthew-carroll To fix this issue the iOS maps SDK version should be bumped in the google_maps_flutter plugin.

CC @amirh for plugins and @LongCatIsLooong for Dark Mode support.

@matthew-carroll this is probably a candidate for the easy fix label.

Any update on this ? Can you release that fix ?

I would submit a PR but I don't see an obvious place to bump the version. Any hints here?

@RyanRamchandar dark mode support for iOS? Isnt about it the whole thread ?

@rdev-software the fix for this issue is in the newest iOS Maps SDK: https://github.com/flutter/flutter/issues/40982#issuecomment-540235842

@RyanRamchandar yes exactly, in plugin dependency...so you need to bump it there and release new plugin version, no ?

Subscribed. I need this fix badly! Thanks for the efforts.

So, can you finally bump it, or for what we are waiting ?

@rdev-software

so you need to bump it there and release new plugin version, no ?

https://github.com/flutter/flutter/issues/40982#issuecomment-547472072 Not sure where to bump it. If you do please open a PR.

I looked through the plugin and I can't find where the iOS Maps SDK is defined. I only found the definition in android.

On further investigation it looks like flutter adds GoogleMaps in the podspec without version restriction. So in theory if you manually run cocoa pods update you should get the latest iOS Maps SDK. I checked the podspec file on cocoa pods and it is indeed already upgraded to 3.6.0.
I do not think there is anything to add in Flutter itself.

@zerox1212 thx for clarification, I will update it today again. But I am quite sure that I am using latest version of everything and upgrading regularly and issue with dark-mode is still present. (which is obviously not a flutter fault)

@zerox1212 @RyanRamchandar Issue found. Even though you've specified GoogleMaps without version, IOS version is set to iOS8.0 (yes that ancient version). Which basically force POD to install version 2.7.0 (yes 2 years old version). So please change version to iOS9 (which is supported by latest 3.6.0)

@rdev-software did you verify on your device that this fixes the issue for you?

@RyanRamchandar, yes I changed version of project to 9.0 and podspec for plugin to 9.0. Then run pod update. And now its showing info window title correctly

@rdev-software Good catch. I was actually suspicious about the 8.0 but wasn't sure of it's impact on cocoa pods. I suppose it makes sense that it impacts dependency versions, but I can't help but blame Apple for not having a real package system...

@zerox1212  there is on https://swift.org/package-manager/ just no one is using it

Can confirm I was also stuck on maps version 2.7.0 and after updating the platform to 9.0, I was able to upgrade to 3.6.0 and got my visible InfoWindow titles back :)

Can confirm I was also stuck on maps version 2.7.0 and after updating the platform to 9.0, I was able to upgrade to 3.6.0 and get my visible InfoWindow titles back :)

how did you update it? changing target ios version to 9  in xcode and uncommenting version line in pods didnt worked for me.

@xyzbilal Make sure you run 'pod install' after changing your platform number because pods won'd do it automatically.

This seems like a Google Maps SDK bug: https://b.corp.google.com/issues/137173762
seems to have been fixed in version 3.5.0, I'm closing this issue as I don't think there's an action item on the Flutter side.

@amirh except for changing platform version in plugin podspec !

IIUC it's not the plugin's podspec that sets the platform version, but it's the application's Podfile.
I think this is normally coming from this template: https://github.com/flutter/flutter/blob/cce445e278584589d072e21a84bbf1e8d511efc9/packages/flutter_tools/templates/cocoapods/Podfile-ios-objc
I'm not sure whether we want to make the default required platform >=9.0 as long as Flutter supports 8.0... I guess a potentially reasonable thing to do is to set platform to a higher version by default and have the developers that actually need to support lower platforms manually change the requirement. Another overlooked aspect of this is the size of our test matrix (we're currently testing on CI targeting 8.0 which is probably not what we want to do). I'll file a separate issue for the default/CI target platform discussion.

Supporting iOS8 is not reasonable, but I get your point ;)

I have to agree with @rdev-software . Devices in the wild on iOS 8 has got to be less than .1%?

@amirh You have the perfect solution by defaulting to iOS 9 and allowing devs that need lower versions to set it manually. I think it is an acceptable tradeoff to have to deal with this bug if you need to support 5 year old operating systems. I'm not sure if Apple still even provides iOS 8 simulator images.

This seems like a Google Maps SDK bug: https://issuetracker.google.com/issues/137173762
seems to have been fixed in version 3.5.0, I'm closing this issue as I don't think there's an action item on the Flutter side.

Has this change made it into google_maps_flutter Flutter yet? I still don't see it.

Because the google_maps_flutter podspec has a default required platform of 8.0 it will not grab the newest Google Maps iOS SDK which has this fix.
See here for reasons not to upgrade the podspec platform version https://github.com/flutter/flutter/issues/40982#issuecomment-555275801

Is there a workaround then? Do I just edit the Podfile manually?

Is there a workaround then? Do I just edit the Podfile manually?

That should work. @rdev-software did this and it worked for them:
https://github.com/flutter/flutter/issues/40982#issuecomment-554095441
Please report back if it worked for you.

@chickenblood @RyanRamchandar Yes you can manually set iOS version and edit pod. But thats not how its should be done. I explained that in my post, that supporting iOS8 will only bring more problems. General rule is to support current + last 2 versions. iOS13,12,11 (and I can understand support for iOS10, as there are not many changes between 10,11). Anyhow even if so, than you shouldnt specify version in PODspec and therefore force google pod to download old version!

@rdev-software I don't follow you. 'Supporting iOS8 will only bring more problems'. But that is what Flutter is already doing by default right?
'you shouldnt specify version in PODspec and therefore force google pod to download old version!'
My intention is to specify a higher version so that  the newer Google Maps SDK will be downloaded in order to get rid of this bug. Of course I need to remove this workaround as soon as Flutter catches up and drops iOS8 support.

@chickenblood by supporting I dont mean that you cannot use old versions of flutter/plugins.
But we should use semantic versioning to stop at certain version. Like many iOS/Android plugins.
So you will select for example ^8.0.0 version for google maps plugin, which will be for iOS8, will have old iOS POD etc...but rest of us can bump up to ^13.0.0 and use latest iOS etc.
Its really weird that plugin will specify iOS version, specially not for plugin like google maps, which is updated like every month :D

@rdev-software  You lost me. I have no interest in supporting iOS8, just fixing this bug.

not you @chickenblood , but owners of google maps flutter plugin

Gotcha. I'm still not clear on exactly which file I need to edit.

@chickenblood you need to change your iOS project version (open in xcode, click on runner project and change version) and then I've changed podspec iOS version of google maps plugin, deep in pods project

I have tried the following:
Open /flutter/.pub-cache/hosted/pub.dartlang.org/google_maps_flutter-0.5.21+8/ios/google_maps_flutter.podspec
Change the value of s.ios.deployment_target from '8.0' to '9.0'
Set iOS Deployment Target in your Xcode project to something  >= 9.0
In /ios pod install
Clean and rebuild Flutter project.
Still doesn't work.

Won't that fix get obliterated next time you run pub get ?

From the Apple developer email:

Apps for iPhone or iPad must be built with the iOS 13 SDK or later and use an Xcode storyboard to provide the app’s launch screen. Deadline June 30, 2020.

authors: Nexuist RyanRamchandar amirh chickenblood davystrong escamoteur evertonfoz lukepighetti matthew-carroll mklim radvansky-tomas rdev-software xyzbilal zerox1212


text:
CFRunLoopSource in MessageLoopDarwin not being collected.

A source added to the CFRunLoop is indicated as being leaked by leak sanitizer. The message loop itself is being released though. Possible false positive.
Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x11a772393 in wrap_malloc (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x59393)
    #1 0x7fff7c8f3b10 in _Block_object_assign (libsystem_blocks.dylib:x86_64+0xb10)
    #2 0x7fff7c8f39f2 in _Block_copy (libsystem_blocks.dylib:x86_64+0x9f2)
    #3 0x7fff7c8f3a94 in _Block_object_assign (libsystem_blocks.dylib:x86_64+0xa94)
    #4 0x7fff7c8f39f2 in _Block_copy (libsystem_blocks.dylib:x86_64+0x9f2)
    #5 0x7fff7c85c5cf in _dispatch_Block_copy (libdispatch.dylib:x86_64+0x25cf)
    #6 0x7fff7c86e20d in _dispatch_source_set_handler (libdispatch.dylib:x86_64+0x1420d)
    #7 0x11a771909 in wrap_dispatch_source_set_event_handler (libclang_rt.asan_osx_dynamic.dylib:x86_64+0x58909)
    #8 0x7fff50931b7c in __CFRunLoopFindMode (CoreFoundation:x86_64h+0x38b7c)
    #9 0x7fff5093188b in __CFRunLoopCreate (CoreFoundation:x86_64h+0x3888b)
    #10 0x7fff509315e6 in _CFRunLoopGet0 (CoreFoundation:x86_64h+0x385e6)
    #11 0x10e303330 in fml::MessageLoopDarwin::MessageLoopDarwin() message_loop_darwin.mm:17
    #12 0x10e303e92 in fml::MessageLoopDarwin::MessageLoopDarwin() message_loop_darwin.mm:17
    #13 0x10e2b9459 in fml::RefPtr<fml::MessageLoopDarwin> fml::internal::MakeRefCountedHelper<fml::MessageLoopDarwin>::MakeRefCounted<>() ref_ptr_internal.h:31
    #14 0x10e2b6d11 in fml::RefPtr<fml::MessageLoopDarwin> fml::MakeRefCounted<fml::MessageLoopDarwin>() ref_ptr.h:231
    #15 0x10e2b6c61 in fml::MessageLoopImpl::Create() message_loop_impl.cc:30
    #16 0x10e2b5226 in fml::MessageLoop::MessageLoop() message_loop.cc:40
    #17 0x10e2b5032 in fml::MessageLoop::MessageLoop() message_loop.cc:41
    #18 0x10e2b4f76 in fml::MessageLoop::EnsureInitializedForCurrentThread() message_loop.cc:32
    #19 0x111ece7a3 in flutter::testing::ThreadTest::SetUp() thread_test.cc:14
    #20 0x10cb23365 in flutter::testing::EmbedderTest::SetUp() embedder_test.cc:30
    #21 0x1121d7ed2 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2447
    #22 0x1121837e9 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2502
    #23 0x1121831db in testing::Test::Run() gtest.cc:2517
    #24 0x1121854c9 in testing::TestInfo::Run() gtest.cc:2698
    #25 0x112187ab9 in testing::TestSuite::Run() gtest.cc:2828
    #26 0x1121a0861 in testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5285
    #27 0x1121e4fc2 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2447
    #28 0x11219fb40 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2502
    #29 0x11219f68c in testing::UnitTest::Run() gtest.cc:4873

Wondering if this is still happening.

authors: chinmaygarde pedromassangocode