fluttercmake

CMake error while running flutter desktop application


When I am trying to launch flutter desktop application, this error occurred to me:

"CMake Error at CMakeLists.txt:2 (project):

Generator

Visual Studio 16 2019

could not find any instance of Visual Studio.

Building Windows application...

Exception: Unable to generate build files"

What I did...

1- Installed Visual Studio 2022 with (Desktop development with C++ and Universal Windows Platform development)

2- Run these commands:

flutter config --enable-windows-desktop

flutter create .

flutter run -d windows

Also I tried to use dev channel:

flutter channel dev

flutter upgrade

flutter config--enable-windows-uwp-desktop

And these what I have when I run flutter devices and flutter doctor

flutter devices

4 connected devices: Windows (desktop) • windows • windows-x64 • Microsoft Windows [Version 10.0.22000.318] Windows (UWP) (desktop) • winuwp • windows-uwp-x64 • Chrome (web) • chrome • web-javascript • Google Chrome 94.0.4606.81 Edge (web) • edge • web-javascript • Microsoft Edge 95.0.1020.44

flutter doctor

[√] Flutter (Channel dev, 2.6.0-11.0.pre, on Microsoft Windows [Version 10.0.22000.318], locale en-US)

[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)

[√] Chrome - develop for the web

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.0.0)

[√] Android Studio (version 2020.3)

[√] VS Code (version 1.61.1)

[√] Connected device (4 available)

• No issues found!


Solution

  • 3rd Feb 2022 Update: The latest version of Flutter, version 2.10 stable, has this issue fixed along with stable desktop support for Windows.

    Update: The flutter beta channel (2.9.0-0.1.pre onwards) comes with a fix.

    According to this issue on the main flutter repo, Flutter prior to version 2.9 does not support Visual Studio 2022. If you want to build while targeting Windows you'll either have to install VS 2019 alongside 2022 or use this workaround:

    The current workaround is : download your appropriate flutter version, edit _cmakeVisualStudioGeneratorIdentifier in https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/windows/build_windows.dart#L25-L28 to your appropriate CMake Visual Studio Generator. You can get the currently available CMake Visual Studio Generators on this page : https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html#id13.

    By default the _cmakeVisualStudioGeneratorIdentifier comes with CMake Visual Studio 2019 Generator. If you are going to use CMake Visual Studio 2022 Generator - firstly ensure your visual studio 2022 distribution contains Cmake 3.21 or later, refer https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2017%202022.html for details.

    To apply these changes on Windows:

    • Edit path\to\flutter\packages\flutter_tools\lib\src\windows\build_windows.dart, and change the constant on line 28 from 'Visual Studio 16 2019' to 'Visual Studio 17 2022'
    • Delete flutter_tools.stamp and flutter_tools.snapshot in path\to\flutter\bin\cache\ (to cause flutter to regenerate its build tools with the new source code you changed above)
    • In the project path, run flutter clean to remove cached CMake files referring to the wrong Visual Studio version
    • In the project path, run flutter run -d windows to restart the build (successfully, this time)