docs.flutter.dev Open in urlscan Pro
2620:0:890::100  Public Scan

URL: https://docs.flutter.dev/get-started/install/windows/mobile
Submission: On December 18 via manual from JP — Scanned from JP

Form analysis 1 forms found in the DOM

/search/

<form action="/search/" class="site-header__search form-inline"><input class="site-header__searchfield form-control search-field" type="search" name="q" id="q" autocomplete="off" placeholder="Search" aria-label="Search"></form>

Text Content

Skip to main content

docs.flutter.dev uses cookies from Google to deliver and enhance the quality of
its services and to analyze traffic. Learn more.

OK, got it

menu
    * Get started
    * Set up Flutter
    * Learn Flutter
      * Introduction
      * Write your first app
      * Learn the fundamentals
        * Introduction
        * Intro to Dart
        * Widgets
        * Layout
        * State management
        * Handling user input
        * Networking and data
        * Local data and caching
      * From another platform?
        * Flutter for Android devs
        * Flutter for SwiftUI devs
        * Flutter for UIKit devs
        * Flutter for React Native devs
        * Flutter for web devs
        * Flutter for Xamarin.Forms devs
        * Introduction to declarative UI
        * Flutter versus Swift concurrency
        
      * Codelabs
      * Cookbook
      * Demos and samples
    * Stay up to date
      * Upgrade
      * SDK archive
        
      * What's new
      * Release notes
      * Breaking changes
      * Compatibility policy
    * App solutions
      * AI
        * AI Toolkit guide
          * Overview
          * User experience
          * Feature integration
          * Custom LLM providers
          * Chat client sample
        * Build with Google AI Dart SDK (video)
      * Firebase & Firestore
        * Overview
        * Discover Firebase for Flutter
        * Get to know Firebase for Flutter
        * Add a user authentication flow to a Flutter app using FirebaseUI
        * Get to know Firebase for web
      * Games
        * Overview
        * Add achievements and leaderboards
        * Build leaderboards with Firestore
        * Add advertising
        * Add multiplayer support
        * Add in-app purchases
        * Add user authentication
        * Debug using Crashlytics
        * Intro to Flame with Flutter
      * Monetization
        * Advertising
          * Ads overview
          * Add advertising
          * Add AdMob ads to your Flutter app
          * Add an AdMob banner and native inline ads
          * Google AdMob mediation
          * Interactive Media Ads SDK
        * In-app purchases
          * In-app purchases overview
          * Add in-app purchases
        * Payments
          * Payments overview
          * Google pay package
      * Maps
        * Add Google maps to a Flutter app
        * Google Maps package
      * News
        * Build a news app
    * 
    * User interface
    * Introduction
    * Widget catalog
    * Layout
      * Introduction
      * Build a layout
      * Lists & grids
        * Create and use lists
        * Create a horizontal list
        * Create a grid view
        * Create lists with different types of items
        * Create lists with spaced items
        * Work with long lists
      * Scrolling
        * Overview
        * Use slivers to achieve fancy scrolling
        * Place a floating app bar above a list
        * Create a scrolling parallax effect
    * Adaptive & responsive design
      * Overview
      * General approach
      * SafeArea & MediaQuery
      * Large screens & foldables
      * User input & accessibility
      * Capabilities & policies
      * Automatic platform adaptations
      * Best practices
      * Additional resources
    * Design & theming
      * Share styles with themes
      * Material design
      * Migrate to Material 3
      * Text
        * Fonts & typography
        * Use a custom font
        * Export fonts from a package
        * Google Fonts package
      * Custom graphics
        * Use custom fragment shaders
    * Interactivity
      * Add interactivity to your app
      * Gestures
        * Introduction
        * Handle taps
        * Drag an object outside an app
        * Drag a UI element within an app
        * Add Material touch ripples
        * Implement swipe to dismiss
      * Input & forms
        * Create and style a text field
        * Retrieve the value of a text field
        * Handle changes to a text field
        * Manage focus in text fields
        * Build a form with validation
      * Display a snackbar
      * Implement actions & shortcuts
      * Manage keyboard focus
    * Assets & media
      * Add assets and images
      * Display images from the internet
      * Fade in images with a placeholder
      * Play and pause a video
      * Transform assets at build time
    * Navigation & routing
      * Overview
      * Add tabs to your app
      * Navigate to a new screen and back
      * Send data to a new screen
      * Return data from a screen
      * Add a drawer to a screen
      * Set up deep linking
      * Set up app links for Android
      * Set up universal links for iOS
      * Configure web URL strategies
    * Animations & transitions
      * Introduction
      * Tutorial
      * Implicit animations
      * Animate the properties of a container
      * Fade a widget in and out
      * Hero animations
      * Animate a page route transition
      * Animate using a physics simulation
      * Staggered animations
      * Create a staggered menu animation
      * API overview
    * Accessibility & internationalization
      * Accessibility
      * Internationalization
    * 
    * Beyond UI
    * Data & backend
      * State management
        * Introduction
        * Think declaratively
        * Ephemeral vs app state
        * Simple app state management
        * Options
      * Networking & http
        * Overview
        * Fetch data from the internet
        * Make authenticated requests
        * Send data to the internet
        * Update data over the internet
        * Delete data on the internet
        * Communicate with WebSockets
      * Serialization
        * JSON serialization
        * Parse JSON in the background
      * Persistence
        * Store key-value data on disk
        * Read and write files
        * Persist data with SQLite
      * Firebase
        * Overview
        * Add Firebase to your Flutter app
      * Google APIs
    * App architecture
      * Introduction
      * Architecture concepts
      * Guide to app architecture
      * Architecture case study
        * Overview
        * UI layer
        * Data layer
        * Dependency injection
        * Testing each layer
      * Recommendations
      * Design patterns
    * Platform integration
      * Supported platforms
      * Build desktop apps with Flutter
      * Write platform-specific code
      * Android
        * Add Android as build target
        * Add a splash screen
        * Add predictive back
        * Bind to native code
        * Host a native Android view
        * Calling JetPack APIs
        * Launch a Jetpack Compose activity
        * Restore state on Android
        * Target ChromeOS with Android
      * iOS
        * Add iOS as build target
        * Flutter on latest iOS
        * Leverage Apple's system libraries
        * Add a launch screen
        * Add iOS App Clip support
        * Add iOS app extensions
        * Bind to native code
        * Host a native iOS view
        * Enable debugging on iOS
        * Restore state on iOS
      * Linux
        * Add Linux as build target
        * Build a Linux app
      * macOS
        * Add macOS as build target
        * Build a macOS app
        * Bind to native code
        * Host a native macOS view
      * Web
        * Web support in Flutter
        * Add web as build target
        * Build a web app
        * Compile to WebAssembly
        * Customize app initialization
        * Add Flutter to any web app
        * Web content in Flutter
        * Web renderers
        * Display images on the web
        * Web FAQ
      * Windows
        * Add Windows as build target
        * Build a Windows app
    * Packages & plugins
      * Use packages & plugins
      * Develop packages & plugins
      * Swift Package Manager
        * For app developers
        * For plugin authors
        
      * Flutter Favorites
      * Package repository
    * Testing & debugging
      * Testing
      * Overview
      * Unit testing
        * Introduction
        * Mock dependencies
      * Widget testing
        * Introduction
        * Find widgets
        * Simulate scrolling
        * Simulate user interaction
      * Integration testing
        * Introduction
        * Write and run an integration test
        * Profile an integration test
      * Test a plugin
      * Handle plugin code in tests
      * Debugging
      * Debugging tools
      * Debug your app programmatically
      * Use a native language debugger
      * Common Flutter errors
      * Handle errors
      * Report errors to a service
    * Performance & optimization
      * Overview
      * Impeller
      * Performance best practices
      * App size
      * Deferred components
      * Rendering performance
      * Performance profiling
      * Performance profiling for web
      * Shader compilation jank
      * Performance metrics
      * Concurrency and isolates
      * Performance FAQ
      * Appendix
    * Deployment
      * Obfuscate Dart code
      * Create flavors of an app
      * Build and release an Android app
      * Build and release an iOS app
      * Build and release a macOS app
      * Build and release a Linux app
      * Build and release a Windows app
      * Build and release a web app
      * Set up continuous deployment
    * Add to an existing app
      * Introduction
      * Add to an Android app
        * Set up Android project
        * Add a single Flutter screen
        * Add a Flutter Fragment
        * Add a Flutter View
        * Use a Flutter plugin
      * Add to an iOS app
        * Set up iOS project
        * Add a single Flutter screen
      * Add to a web app
      * Debug embedded Flutter module
      * Add multiple Flutter instances
      * Loading sequence and performance
    * 
    * Tools & editors
      * Android Studio & IntelliJ
      * Visual Studio Code
      * DevTools
        * Overview
        * Run from Android Studio & IntelliJ
        * Run from VS Code
        * Run from command line
        * Flutter inspector
        * Performance view
        * CPU Profiler view
        * Memory view
        * Debug console view
        * Network view
        * Debugger
        * Logging view
        * App size tool
        * DevTools extensions
        * Validate deep links
        * Release notes
      * SDK overview
      * Flutter's pubspec options
      * Automated fixes
      * Code formatting
    * Flutter concepts
      * Architectural overview
      * Inside Flutter
      * Understanding constraints
      * Flutter's build modes
      * Hot reload
    * Resources
      * FAQ
      * Books
      * Videos
      * Courses
      * Learn Dart
      * Get support
        
      * Contribute
        * Create useful bug reports
        * Contribute to Flutter
        * Discover proposed features
      * Reference
        * Who is Dash?
        * Widget index
        * flutter CLI
        * API docs

 * Multi-Platform
   Mobile Web Desktop Embedded
 * Development
   Learn Flutter Favorites Packages Monetization Games News
 * Ecosystem
   Community Events Culture
 * Showcase
 * Docs
   What's new Editor support Hot reload Profiling Install Flutter DevTools
   Cookbook Codelabs



Get started
Celebrating Flutter's production era! Learn more
 * Get started
 * Set up Flutter
 * Learn Flutter
   * Introduction
   * Write your first app
   * Learn the fundamentals
     * Introduction
     * Intro to Dart
     * Widgets
     * Layout
     * State management
     * Handling user input
     * Networking and data
     * Local data and caching
   * From another platform?
     * Flutter for Android devs
     * Flutter for SwiftUI devs
     * Flutter for UIKit devs
     * Flutter for React Native devs
     * Flutter for web devs
     * Flutter for Xamarin.Forms devs
     * Introduction to declarative UI
     * Flutter versus Swift concurrency
     
   * Codelabs
   * Cookbook
   * Demos and samples
 * Stay up to date
   * Upgrade
   * SDK archive
     
   * What's new
   * Release notes
   * Breaking changes
   * Compatibility policy
 * App solutions
   * AI
     * AI Toolkit guide
       * Overview
       * User experience
       * Feature integration
       * Custom LLM providers
       * Chat client sample
     * Build with Google AI Dart SDK (video)
   * Firebase & Firestore
     * Overview
     * Discover Firebase for Flutter
     * Get to know Firebase for Flutter
     * Add a user authentication flow to a Flutter app using FirebaseUI
     * Get to know Firebase for web
   * Games
     * Overview
     * Add achievements and leaderboards
     * Build leaderboards with Firestore
     * Add advertising
     * Add multiplayer support
     * Add in-app purchases
     * Add user authentication
     * Debug using Crashlytics
     * Intro to Flame with Flutter
   * Monetization
     * Advertising
       * Ads overview
       * Add advertising
       * Add AdMob ads to your Flutter app
       * Add an AdMob banner and native inline ads
       * Google AdMob mediation
       * Interactive Media Ads SDK
     * In-app purchases
       * In-app purchases overview
       * Add in-app purchases
     * Payments
       * Payments overview
       * Google pay package
   * Maps
     * Add Google maps to a Flutter app
     * Google Maps package
   * News
     * Build a news app
 * 
 * User interface
 * Introduction
 * Widget catalog
 * Layout
   * Introduction
   * Build a layout
   * Lists & grids
     * Create and use lists
     * Create a horizontal list
     * Create a grid view
     * Create lists with different types of items
     * Create lists with spaced items
     * Work with long lists
   * Scrolling
     * Overview
     * Use slivers to achieve fancy scrolling
     * Place a floating app bar above a list
     * Create a scrolling parallax effect
 * Adaptive & responsive design
   * Overview
   * General approach
   * SafeArea & MediaQuery
   * Large screens & foldables
   * User input & accessibility
   * Capabilities & policies
   * Automatic platform adaptations
   * Best practices
   * Additional resources
 * Design & theming
   * Share styles with themes
   * Material design
   * Migrate to Material 3
   * Text
     * Fonts & typography
     * Use a custom font
     * Export fonts from a package
     * Google Fonts package
   * Custom graphics
     * Use custom fragment shaders
 * Interactivity
   * Add interactivity to your app
   * Gestures
     * Introduction
     * Handle taps
     * Drag an object outside an app
     * Drag a UI element within an app
     * Add Material touch ripples
     * Implement swipe to dismiss
   * Input & forms
     * Create and style a text field
     * Retrieve the value of a text field
     * Handle changes to a text field
     * Manage focus in text fields
     * Build a form with validation
   * Display a snackbar
   * Implement actions & shortcuts
   * Manage keyboard focus
 * Assets & media
   * Add assets and images
   * Display images from the internet
   * Fade in images with a placeholder
   * Play and pause a video
   * Transform assets at build time
 * Navigation & routing
   * Overview
   * Add tabs to your app
   * Navigate to a new screen and back
   * Send data to a new screen
   * Return data from a screen
   * Add a drawer to a screen
   * Set up deep linking
   * Set up app links for Android
   * Set up universal links for iOS
   * Configure web URL strategies
 * Animations & transitions
   * Introduction
   * Tutorial
   * Implicit animations
   * Animate the properties of a container
   * Fade a widget in and out
   * Hero animations
   * Animate a page route transition
   * Animate using a physics simulation
   * Staggered animations
   * Create a staggered menu animation
   * API overview
 * Accessibility & internationalization
   * Accessibility
   * Internationalization
 * 
 * Beyond UI
 * Data & backend
   * State management
     * Introduction
     * Think declaratively
     * Ephemeral vs app state
     * Simple app state management
     * Options
   * Networking & http
     * Overview
     * Fetch data from the internet
     * Make authenticated requests
     * Send data to the internet
     * Update data over the internet
     * Delete data on the internet
     * Communicate with WebSockets
   * Serialization
     * JSON serialization
     * Parse JSON in the background
   * Persistence
     * Store key-value data on disk
     * Read and write files
     * Persist data with SQLite
   * Firebase
     * Overview
     * Add Firebase to your Flutter app
   * Google APIs
 * App architecture
   * Introduction
   * Architecture concepts
   * Guide to app architecture
   * Architecture case study
     * Overview
     * UI layer
     * Data layer
     * Dependency injection
     * Testing each layer
   * Recommendations
   * Design patterns
 * Platform integration
   * Supported platforms
   * Build desktop apps with Flutter
   * Write platform-specific code
   * Android
     * Add Android as build target
     * Add a splash screen
     * Add predictive back
     * Bind to native code
     * Host a native Android view
     * Calling JetPack APIs
     * Launch a Jetpack Compose activity
     * Restore state on Android
     * Target ChromeOS with Android
   * iOS
     * Add iOS as build target
     * Flutter on latest iOS
     * Leverage Apple's system libraries
     * Add a launch screen
     * Add iOS App Clip support
     * Add iOS app extensions
     * Bind to native code
     * Host a native iOS view
     * Enable debugging on iOS
     * Restore state on iOS
   * Linux
     * Add Linux as build target
     * Build a Linux app
   * macOS
     * Add macOS as build target
     * Build a macOS app
     * Bind to native code
     * Host a native macOS view
   * Web
     * Web support in Flutter
     * Add web as build target
     * Build a web app
     * Compile to WebAssembly
     * Customize app initialization
     * Add Flutter to any web app
     * Web content in Flutter
     * Web renderers
     * Display images on the web
     * Web FAQ
   * Windows
     * Add Windows as build target
     * Build a Windows app
 * Packages & plugins
   * Use packages & plugins
   * Develop packages & plugins
   * Swift Package Manager
     * For app developers
     * For plugin authors
     
   * Flutter Favorites
   * Package repository
 * Testing & debugging
   * Testing
   * Overview
   * Unit testing
     * Introduction
     * Mock dependencies
   * Widget testing
     * Introduction
     * Find widgets
     * Simulate scrolling
     * Simulate user interaction
   * Integration testing
     * Introduction
     * Write and run an integration test
     * Profile an integration test
   * Test a plugin
   * Handle plugin code in tests
   * Debugging
   * Debugging tools
   * Debug your app programmatically
   * Use a native language debugger
   * Common Flutter errors
   * Handle errors
   * Report errors to a service
 * Performance & optimization
   * Overview
   * Impeller
   * Performance best practices
   * App size
   * Deferred components
   * Rendering performance
   * Performance profiling
   * Performance profiling for web
   * Shader compilation jank
   * Performance metrics
   * Concurrency and isolates
   * Performance FAQ
   * Appendix
 * Deployment
   * Obfuscate Dart code
   * Create flavors of an app
   * Build and release an Android app
   * Build and release an iOS app
   * Build and release a macOS app
   * Build and release a Linux app
   * Build and release a Windows app
   * Build and release a web app
   * Set up continuous deployment
 * Add to an existing app
   * Introduction
   * Add to an Android app
     * Set up Android project
     * Add a single Flutter screen
     * Add a Flutter Fragment
     * Add a Flutter View
     * Use a Flutter plugin
   * Add to an iOS app
     * Set up iOS project
     * Add a single Flutter screen
   * Add to a web app
   * Debug embedded Flutter module
   * Add multiple Flutter instances
   * Loading sequence and performance
 * 
 * Tools & editors
   * Android Studio & IntelliJ
   * Visual Studio Code
   * DevTools
     * Overview
     * Run from Android Studio & IntelliJ
     * Run from VS Code
     * Run from command line
     * Flutter inspector
     * Performance view
     * CPU Profiler view
     * Memory view
     * Debug console view
     * Network view
     * Debugger
     * Logging view
     * App size tool
     * DevTools extensions
     * Validate deep links
     * Release notes
   * SDK overview
   * Flutter's pubspec options
   * Automated fixes
   * Code formatting
 * Flutter concepts
   * Architectural overview
   * Inside Flutter
   * Understanding constraints
   * Flutter's build modes
   * Hot reload
 * Resources
   * FAQ
   * Books
   * Videos
   * Courses
   * Learn Dart
   * Get support
     
   * Contribute
     * Create useful bug reports
     * Contribute to Flutter
     * Discover proposed features
   * Reference
     * Who is Dash?
     * Widget index
     * flutter CLI
     * API docs

Contents
 * Verify system requirements
   * Hardware requirements
   * Software requirements
 * Configure a text editor or IDE
 * Install the Flutter SDK
 * Configure Android development
   * Configure the Android toolchain in Android Studio
   * Configure your target Android device
   * Agree to Android licenses
 * Check your development setup
   * Run Flutter doctor
   * Troubleshoot Flutter doctor issues
 * Start developing Android on Windows apps with Flutter
 * Manage your Flutter SDK

 * Create your first app


START BUILDING FLUTTER ANDROID APPS ON WINDOWS

 1. Get startedchevron_right
 2. Installchevron_right
 3. Windowschevron_right
 4. Make Android apps

Contents keyboard_arrow_down keyboard_arrow_up
 * Verify system requirements
   * Hardware requirements
   * Software requirements
 * Configure a text editor or IDE
 * Install the Flutter SDK
 * Configure Android development
   * Configure the Android toolchain in Android Studio
   * Configure your target Android device
   * Agree to Android licenses
 * Check your development setup
   * Run Flutter doctor
   * Troubleshoot Flutter doctor issues
 * Start developing Android on Windows apps with Flutter
 * Manage your Flutter SDK

more_horiz


VERIFY SYSTEM REQUIREMENTS

#

To install and run Flutter, your Windows environment must meet the following
hardware and software requirements.


HARDWARE REQUIREMENTS

#

Your Windows Flutter development environment must meet the following minimal
hardware requirements.

RequirementMinimumRecommendedx86_64 CPU Cores48Memory in GB816Display resolution
in pixelsWXGA (1366 x 768)FHD (1920 x 1080)Free disk space in GB11.060.0


SOFTWARE REQUIREMENTS

#

To write and compile Flutter code for Android, you must have the following
version of Windows and the listed software packages.

lightbulb Tip

You do not need to install Dart separately as the Flutter SDK includes the full
Dart SDK.

OPERATING SYSTEM

#

Flutter supports 64-bit version of Microsoft Windows 10 or later. These versions
of Windows should include the required Windows PowerShell 5 or later.

DEVELOPMENT TOOLS

#

Download and install the Windows version of the following packages:

 * Git for Windows 2.27 or later to manage source code.

 * Android Studio 2023.3.1 (Jellyfish) or later to debug and compile Java or
   Kotlin code for Android. Flutter requires the full version of Android Studio.

The developers of the preceding software provide support for those products. To
troubleshoot installation issues, consult that product's documentation.

When you run the current version of flutter doctor, it might list a different
version of one of these packages. If it does, install the version it recommends.


CONFIGURE A TEXT EDITOR OR IDE

#

You can build apps with Flutter using any text editor or integrated development
environment (IDE) combined with Flutter's command-line tools.

Using an IDE with a Flutter extension or plugin provides code completion, syntax
highlighting, widget editing assists, debugging, and other features.

Popular options include:

 * Visual Studio Code 1.77 or later with the Flutter extension for VS Code.
 * Android Studio 2023.3.1 (Jellyfish) or later with the Flutter plugin for
   IntelliJ.
 * IntelliJ IDEA 2023.3 or later with the Flutter plugin for IntelliJ.

bolt Recommended

The Flutter team recommends installing Visual Studio Code 1.77 or later and the
Flutter extension for VS Code. This combination simplifies installing the
Flutter SDK.


INSTALL THE FLUTTER SDK

#

To install the Flutter SDK, you can use the VS Code Flutter extension or
download and install the Flutter bundle yourself.

 * Use VS Code to install
 * Download and install


USE VS CODE TO INSTALL FLUTTER

#

To install Flutter using these instructions, verify that you have installed
Visual Studio Code 1.77 or later and the Flutter extension for VS Code.

PROMPT VS CODE TO INSTALL FLUTTER

#

 1. Launch VS Code.

 2. To open the Command Palette, press Control + Shift + P.

 3. In the Command Palette, type flutter.

 4. Select Flutter: New Project.

 5. VS Code prompts you to locate the Flutter SDK on your computer.
    
    
    
    1. If you have the Flutter SDK installed, click Locate SDK.
    
    2. If you do not have the Flutter SDK installed, click Download SDK.
       
       This option sends you the Flutter install page if you have not installed
       Git for Windows as directed in the development tools prerequisites.

 6. When prompted Which Flutter template?, ignore it. Press Esc. You can create
    a test project after checking your development setup.

DOWNLOAD THE FLUTTER SDK

#

 1. When the Select Folder for Flutter SDK dialog displays, choose where you
    want to install Flutter.
    
    VS Code places you in your user profile to start. Choose a different
    location.
    
    Consider %USERPROFILE% or C:\dev.
    
    warning Warning
    
    Don't install Flutter to a directory or path that meets one or both of the
    following conditions:
    
     * The path contains special characters or spaces.
     * The path requires elevated privileges.
    
    As an example, C:\Program Files fails both conditions.

 2. Click Clone Flutter.
    
    While downloading Flutter, VS Code displays this pop-up notification:
    
    Downloading the Flutter SDK. This may take a few minutes.
    
    content_copy
    
    This download takes a few minutes. If you suspect that the download has
    hung, click Cancel then start the installation again.

 3. Once it finishes downloading Flutter, the Output panel displays.
    
    Checking Dart SDK version...
    Downloading Dart SDK from the Flutter engine ...
    Expanding downloaded archive...
    
    content_copy
    
    When successful, VS Code displays this pop-up notification:
    
    Initializing the Flutter SDK. This may take a few minutes.
    
    content_copy
    
    While initializing, the Output panel displays the following:
    
    Building flutter tool...
    Running pub upgrade...
    Resolving dependencies...
    Got dependencies.
    Downloading Material fonts...
    Downloading Gradle Wrapper...
    Downloading package sky_engine...
    Downloading flutter_patched_sdk tools...
    Downloading flutter_patched_sdk_product tools...
    Downloading windows-x64 tools...
    Downloading windows-x64/font-subset tools...
    
    content_copy
    
    This process also runs flutter doctor -v. At this point in the procedure,
    ignore this output. Flutter Doctor might show errors that don't apply to
    this quick start.
    
    When the Flutter install succeeds, VS Code displays this pop-up
    notification:
    
    Do you want to add the Flutter SDK to PATH so it's accessible
    in external terminals?
    
    content_copy

 4. Click Add SDK to PATH.
    
    When successful, a notification displays:
    
    The Flutter SDK was added to your PATH
    
    content_copy

 5. VS Code may display a Google Analytics notice.
    
    If you agree, click OK.

 6. To enable flutter in all PowerShell windows:
    
    
    
    1. Close, then reopen all PowerShell windows.
    2. Restart VS Code.


DOWNLOAD THEN INSTALL FLUTTER

#

To install Flutter, download the Flutter SDK bundle from its archive, move the
bundle to where you want it stored, then extract the SDK.

 1. Download the following installation bundle to get the latest stable release
    of the Flutter SDK.
    
    flutter_windows_3.27.1-stable.zip
    
    For other release channels, and older builds, check out the SDK archive.
    
    The Flutter SDK should download to the Windows default download directory:
    %USERPROFILE%\Downloads.
    
    If you changed the location of the Downloads directory, replace this path
    with that path. To find your Downloads directory location, check out this
    Microsoft Community post.

 2. Create a folder where you can install Flutter.
    
    Consider creating a directory at %USERPROFILE% (C:\Users\{username}) or
    %LOCALAPPDATA% (C:\Users\{username}\AppData\Local).
    
    warning Warning
    
    Don't install Flutter to a directory or path that meets one or both of the
    following conditions:
    
     * The path contains special characters or spaces.
     * The path requires elevated privileges.
    
    As an example, C:\Program Files fails both conditions.

 3. Extract the file into the directory you want to store the Flutter SDK.
    
    
      PS C:\> Expand-Archive `
          –Path $env:USERPROFILE\Downloads\flutter_windows_3.27.1-stable.zip `
          -Destination $env:USERPROFILE\dev\
    
    content_copy
    
    When finished, the Flutter SDK should be in the
    C:\user\{username}\dev\flutter directory.


UPDATE YOUR WINDOWS PATH VARIABLE

#

help Help

To run Flutter commands in PowerShell, add Flutter to the PATH environment
variable. This section presumes that you installed the Flutter SDK in
%USERPROFILE%\dev\flutter.

 1. Press Windows + Pause.
    
    If your keyboard lacks a Pause key, try Windows + Fn + B.
    
    The System > About dialog displays.

 2. Click Advanced System Settings > Advanced > Environment Variables...
    
    The Environment Variables dialog displays.

 3. In the User variables for (username) section, look for the Path entry.
    
    
    
    1. If the entry exists, double-click on it.
       
       The Edit Environment Variable dialog displays.
       
       
       
       1. Double-click in an empty row.
       
       2. Type %USERPROFILE%\dev\flutter\bin.
       
       3. Click the %USERPROFILE%\dev\flutter\bin entry.
       
       4. Click Move Up until the Flutter entry sits at the top of the list.
       
       5. Click OK three times.
    
    2. If the entry doesn't exist, click New....
       
       The Edit Environment Variable dialog displays.
       
       
       
       1. In the Variable Name box, type Path.
       
       2. In the Variable Value box, type %USERPROFILE%\dev\flutter\bin
       
       3. Click OK three times.

 4. To enable these changes, close and reopen any existing command prompts and
    PowerShell instances.


CONFIGURE ANDROID DEVELOPMENT

#


CONFIGURE THE ANDROID TOOLCHAIN IN ANDROID STUDIO

#

help Help

To create Android apps with Flutter, verify that the following Android
components have been installed.

 * Android SDK Platform, API 35.0.1
 * Android SDK Command-line Tools
 * Android SDK Build-Tools
 * Android SDK Platform-Tools
 * Android Emulator

If you haven't installed these, or you don't know, continue with the following
procedure.

Otherwise, you can skip to the next section.

 * First time using Android Studio
 * Current Android Studio User

 1. Launch Android Studio.
    
    The Welcome to Android Studio dialog displays.

 2. Follow the Android Studio Setup Wizard.

 3. Install the following components:
    
    * Android SDK Platform, API 35.0.1
    * Android SDK Command-line Tools
    * Android SDK Build-Tools
    * Android SDK Platform-Tools
    * Android Emulator

 1. Launch Android Studio.

 2. Go to the Settings dialog to view the SDK Manager.
    
    1. If you have a project open, go to Tools > SDK Manager.
    
    2. If the Welcome to Android Studio dialog displays, click the More Options
       icon that follows the Open button and click SDK Manager from the dropdown
       menu.

 3. Click SDK Platforms.

 4. Verify that Android API 35.0.1 has been selected.
    
    If the Status column displays Update available or Not installed:
    
    
    
    1. Select Android API 35.0.1.
    
    2. Click Apply.
    
    3. When the Confirm Change dialog displays, click OK.
       
       The SDK Quickfix Installation dialog displays with a completion meter.
    
    4. When the install finishes, click Finish.
       
       After you installed the latest SDK, the Status column might display
       Update available. This means some additional system images might not be
       installed. You can ignore this and continue.

 5. Click SDK Tools.

 6. Verify that the following SDK Tools have been selected:
    
    * Android SDK Command-line Tools
    * Android SDK Build-Tools
    * Android SDK Platform-Tools
    * Android Emulator

 7. If the Status column for any of the preceding tools displays Update
    available or Not installed:
    
    
    
    1. Select the needed tools.
    
    2. Click Apply.
    
    3. When the Confirm Change dialog displays, click OK.
       
       The SDK Quickfix Installation dialog displays with a completion meter.
    
    4. When the install finishes, click Finish.


CONFIGURE YOUR TARGET ANDROID DEVICE

#
 * Virtual device
 * Physical device

SET UP THE ANDROID EMULATOR

#

help Help

To configure your Flutter app to run in an Android emulator, follow these steps
to create and select an emulator.

 1.  Enable VM acceleration on your development computer.

 2.  Start Android Studio.

 3.  Go to the Settings dialog to view the SDK Manager.
     
     1. If you have a project open, go to Tools > Device Manager.
     
     2. If the Welcome to Android Studio dialog displays, click the More Options
        icon that follows the Open button and click Device Manager from the
        dropdown menu.

 4.  Click Virtual.

 5.  Click Create Device.
     
     The Virtual Device Configuration dialog displays.

 6.  Select either Phone or Tablet under Category.

 7.  Select a device definition. You can browse or search for the device.

 8.  Click Next.

 9.  Click x86 Images.

 10. Click one system image for the Android version you want to emulate.
     
     
     
     1. If the desired image has a Download icon to the right of the Release
        Name, click it.
        
        The SDK Quickfix Installation dialog displays with a completion meter.
     
     2. When the download completes, click Finish.

 11. Click Next.
     
     The Virtual Device Configuration displays its Verify Configuration step.

 12. To rename the Android Virtual Device (AVD), change the value in the AVD
     Name box.

 13. Click Show Advanced Settings and scroll to Emulated Performance.

 14. From the Graphics dropdown menu, select Hardware - GLES 2.0.
     
     This enables hardware acceleration and improves rendering performance.

 15. Verify your AVD configuration. If it is correct, click Finish.
     
     To learn more about AVDs, check out Managing AVDs.

 16. In the Device Manager dialog, click the Run icon to the right of your
     desired AVD. The emulator starts up and displays the default canvas for
     your selected Android OS version and device.

SET UP YOUR TARGET ANDROID DEVICE

#

help Help

To configure your Flutter app to run on a physical Android device, you need an
Android device running Android API level 21 or later.

 1. Enable Developer options and USB debugging on your device as described in
    the Android documentation.

 2. [Optional] To leverage wireless debugging, enable Wireless debugging on your
    device as described in the Android documentation.

 3. Install the Google USB Driver.

 4. Plug your device into your Windows computer. If your device prompts you,
    authorize your computer to access your device.

 5. Verify that Flutter recognizes your connected Android device.
    
    In PowerShell, run:
    
    c:\> flutter devices
    
    content_copy
    
    By default, Flutter uses the version of the Android SDK where your adb tool
    is based. To use a different Android SDK installation path with Flutter, set
    the ANDROID_SDK_ROOT environment variable to that installation directory.


AGREE TO ANDROID LICENSES

#

help Help

Before you can use Flutter and after you install all prerequisites, agree to the
licenses of the Android SDK platform.

 1. Open an elevated console window.

 2. Run the following command to enable signing licenses.
    
    C:> flutter doctor --android-licenses
    
    content_copy
    
    If you accepted the Android Studio licenses at another time, this command
    returns:
    
    [========================================] 100% Computing updates...
    All SDK package licenses accepted.
    
    content_copy
    
    You can skip the next step.

 3. Before agreeing to the terms of each license, read each with care.

TROUBLESHOOTING LICENSING ISSUES

#
How to fix the error of finding Java install

You might have an issue with the Android SDK locating the Java SDK.

flutter doctor --android-licenses

ERROR: JAVA_HOME is set to an invalid directory: /Applications/Android\ Studio.app/Contents/jre/Contents/Home

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Android sdkmanager tool was found, but failed to run
(/Users/atsansone/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager): "exited code 1".
Try re-installing or updating your Android SDK,
visit https://flutter.dev/to/macos-android-setup for detailed instructions.

content_copy

The flutter doctor command returns this error because of how the JAVA_HOME
variable was set. When you add the path to JAVA_HOME, you can add a backslash to
the space between Android and Studio or enclose the entire path in matching
quotes. You cannot do both.

Look for your JAVA_HOME path in your appropriate shell resource file.

Change it from:

bash

export JAVA_HOME="/Applications/Android\ Studio.app/Contents/jre/Contents/Home"

content_copy

to:

bash

export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"

content_copy

Do not include the backslash between Android and Studio.

To load this updated environment variable, reload your shell. This example uses
the zsh resource file.

source ~/.zshrc

content_copy


CHECK YOUR DEVELOPMENT SETUP

#

help Help


RUN FLUTTER DOCTOR

#

The flutter doctor command validates that all components of a complete Flutter
development environment for Windows.

 1. Open PowerShell.

 2. To verify your installation of all the components, run the following
    command.
    
    PS C:> flutter doctor
    
    content_copy

As you chose to develop for Android, you do not need all components. If you
followed this guide, the result of your command should resemble:

Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.27.0, on Microsoft Windows 11 [Version 10.0.22621.3155], locale en)
[✓] Windows version (Installed version of Windows is version 10 or higher)
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.1)
[!] Chrome - develop for the web
[!] Visual Studio - develop Windows apps
[✓] Android Studio (version 2024.2)
[✓] VS Code (version 1.95)
[✓] Connected device (1 available)
[✓] Network resources


! Doctor found issues in 2 categories.

content_copy


TROUBLESHOOT FLUTTER DOCTOR ISSUES

#

When the flutter doctor command returns an error, it could be for Flutter, VS
Code, Android Studio, the connected device, or network resources.

If the flutter doctor command returns an error for any of these components, run
it again with the verbose flag.

PS C:> flutter doctor -v

content_copy

Check the output for other software you might need to install or further tasks
to perform.

If you change the configuration of your Flutter SDK or its related components,
run flutter doctor again to verify the installation.


START DEVELOPING ANDROID ON WINDOWS APPS WITH FLUTTER

#

Congratulations. Having installed all prerequisites and the Flutter SDK, you can
start developing Flutter apps for Android on Windows.

To continue on your learning journey, consult the following guides:

 * Learn how to write your first Flutter app
 * Flutter fundamentals docs


MANAGE YOUR FLUTTER SDK

#

To learn more about managing your Flutter SDK install, consult the following
resources.

 * Upgrade Flutter
 * Add web as a build target
 * Add Windows desktop compilation tools
 * Uninstall Flutter

 * Create your first app

Unless stated otherwise, the documentation on this site reflects the latest
stable version of Flutter. Page last updated on 2024-10-28. View source or
report an issue.

 * terms
 * brand usage
 * security
 * privacy
 * español
 * 社区中文资源
 * We stand in solidarity with the Black community. Black Lives Matter.

Except as otherwise noted, this work is licensed under a Creative Commons
Attribution 4.0 International License, and code samples are licensed under the
BSD License.