To install and run Flutter, your development environment must meet these minimum requirements:
- Operating Systems: Chrome OS (64-bit) with Linux (Beta) turned on
- Disk Space: 600 MB (does not include disk space for IDE/tools).
Tools: Flutter depends on these command-line
tools being available in your environment.
Shared libraries: Flutter
testcommand depends on this library being available in your environment.
libGLU.so.1- provided by mesa packages such as
Get the Flutter SDK
Download the following installation bundle to get the latest stable release of the Flutter SDK:
For other release channels, and older builds, see the SDK releases page.
In the Files app, drag-and-drop the downloaded file from “Downloads” to “Linux Files” to access Flutter from your Linux container.
Extract the file in the desired location, for example:
$ cd ~/development $ tar xf ~/Downloads/flutter_linux_vX.X.X-stable.tar.xz
If you don’t want to install a fixed version of the installation bundle, you can skip steps 1 and 2. Instead, get the source code from the Flutter repo on GitHub with the following command:
$ git clone https://github.com/flutter/flutter.git
You can also change branches or tags as needed. For example, to get just the stable version:
$ git clone https://github.com/flutter/flutter.git -b stable
fluttertool to your path:
$ export PATH="$PATH:`pwd`/flutter/bin"
This command sets your
PATHvariable for the current terminal window only. To permanently add Flutter to your path, see Update your path.
Optionally, pre-download development binaries:
fluttertool downloads platform-specific development binaries as needed. For scenarios where pre-downloading these artifacts is preferable (for example, in hermetic build environments, or with intermittent network availability), iOS and Android binaries can be downloaded ahead of time by running:
$ flutter precache
For additional download options, see
flutter help precache.
You are now ready to run Flutter commands!
Run flutter doctor
Run the following command to see if there are any dependencies you need to
install to complete the setup (for verbose output, add the
$ flutter doctor
This command checks your environment and displays a report to the terminal window. The Dart SDK is bundled with Flutter; it is not necessary to install Dart separately. Check the output carefully for other software you might need to install or further tasks to perform (shown in bold text).
[-] Android toolchain - develop for Android devices • Android SDK at /Users/obiwan/Library/Android/sdk ✗ Android SDK is missing command line tools; download from https://goo.gl/XxQghQ • Try re-installing or updating your Android SDK, visit https://flutter.dev/setup/#android-setup for detailed instructions.
The following sections describe how to perform these tasks and finish the setup process.
Once you have installed any missing dependencies, run the
command again to verify that you’ve set everything up correctly.
Update your path
You can update your PATH variable for the current session at
the command line, as shown in Get the Flutter SDK.
You’ll probably want to update this variable permanently,
so you can run
flutter commands in any terminal session.
The steps for modifying this variable permanently for all terminal sessions are machine-specific. Typically you add a line to a file that is executed whenever you open a new window. For example:
- Determine the path of your clone of the Flutter SDK. You need this in Step 3.
- Open (or create) the
rcfile for your shell. For example, Linux uses the Bash shell by default, so edit
$HOME/.bashrc. If you are using a different shell, the file path and filename will be different on your machine.
Add the following line and change
[PATH_OF_FLUTTER_GIT_DIRECTORY]to be the path of your clone of the Flutter git repo:
$ export PATH="$PATH:[PATH_OF_FLUTTER_GIT_DIRECTORY]/bin"
source $HOME/.<rc file>to refresh the current window, or open a new terminal window to automatically source the file.
Verify that the
flutter/bindirectory is now in your PATH by running:
$ echo $PATH
Verify that the
fluttercommand is available by running:
$ which flutter
Update path directly
In some cases, your distribution may not permanently acquire the path when using the above directions. When this occurs, you can change the environment variables file directly. These instructions require administrator privileges:
Determine the path of your clone of the Flutter SDK.
etcdirectory at the root of the system, and open the
profilefile with root privileges.
$ sudo nano /etc/profile
Update the PATH string with the location of your Flutter SDK directory.
if [ "`id -u`" -eq 0 ]; then PATH="..." else PATH="/usr/local/bin:...:[PATH_OF_FLUTTER_GIT_DIRECTORY]/bin" fi export PATH
- End the current session or reboot your system.
Once you start a new session, verify that the
fluttercommand is available by running:
$ which flutter
Install Android Studio
- Download and install Android Studio.
- Start Android Studio, and go through the ‘Android Studio Setup Wizard’. This installs the latest Android SDK, Android SDK Command-line Tools, and Android SDK Build-Tools, which are required by Flutter when developing for Android.
- Accept Android licenses.
$ flutter doctor --android-licenses
Set up your Android device
To prepare to run and test your Flutter app on an Android device, you need an Android device running Android 4.1 (API level 16) or higher.
- Enable Developer options and USB debugging on your device. Detailed instructions are available in the Android documentation.
- Using a USB cable, plug your phone into your computer. On your Chromebook, you may see a notification for “USB device detected”. Click on “Connect to Linux” If prompted on your Android device, authorize your computer to access your device.
- In the terminal, run the
flutter devicescommand to verify that Flutter recognizes your connected Android device. By default, Flutter uses the version of the Android SDK where your
adbtool is based. If you want Flutter to use a different installation of the Android SDK, you must set the
ANDROID_SDK_ROOTenvironment variable to that installation directory.
Deploy to your Chromebook
With the latest version of Chrome OS, you no longer need to put your device into developer mode to push apps to your Chrome OS device.
- Enable ADB in Settings. Note that this will require you to reboot your device once.
- In the Terminal, run
flutter devices. If prompted, authorize access to the Android container. Verify that
flutter deviceslists your Chrome OS device as a recognized device.
Set up your preferred editor.
Flutter & Chrome OS tips & tricks
For the current versions of Chrome OS, only certain ports from Crostini are exposed to the rest of the environments. Here’s an example of how to launch Flutter DevTools for an Android app with ports that will work:
$ flutter pub global run devtools -p 8000 $ cd path/to/your/app $ flutter run --observatory-port=8080
Then, navigate to http://127.0.0.1:8000/#
in your Chrome browser and enter the URL to your
application. The last
flutter run command you
just ran should output a URL similar to the format
http://127.0.0.1:8080/auth_code=/. Use this URL
and select “Connect” to start the Flutter DevTools
for your Android app.
Flutter Chrome OS lint analysis
The Flutter team is adding Chrome OS specific Lint Analysis checks that are available to make sure that the app that you’re building is going to work well on Chrome OS. It looks for things like required hardware in your Android Manifest that aren’t available on Chrome OS devices, permissions that imply requests for unsupported hardware, as well as other properties or code that would bring a lesser experience on these devices.
To activate these, you need to create a new analysis_options.yaml file in your project folder to include these options. (If you have an existing analysis_options.yaml file, you can update it)
include: package:flutter/analysis_options_user.yaml analyzer: optional-checks: chrome-os-manifest-checks
To run these from the command line, use the following command:
$ flutter analyze
Sample output for this command might look like:
Analyzing ... warning • This hardware feature is not supported on Chrome OS • android/app/src/main/AndroidManifest.xml:4:33 • unsupported_chrome_os_hardware
This functionality is still under development, but check back for instructions on how you can make this functionality work with your Chrome OS targeted Flutter app.