Complete Guide to Setting Up Flutter Emulators in Visual Studio Code

Nov 19, 2025 · Programming · 10 views · 7.8

Keywords: Visual Studio Code | Flutter | Emulator Setup | Dart Code Extension | Genymotion

Abstract: This article provides a comprehensive guide for configuring emulators in Visual Studio Code for Flutter development on Ubuntu systems. It focuses on the emulator launch feature introduced in Dart Code extension version 2.13.0, detailing both command palette and terminal-based approaches. The guide also addresses common 'No Devices' display issues with Genymotion emulator configuration, offering complete device setup solutions for Flutter developers.

Problem Background and Challenges

When using Visual Studio Code for Flutter development, many developers encounter the issue where the device selection area displays "No Devices". This typically occurs during initial environment setup or when switching development tools. Based on user reports, after installing Visual Studio Code on Ubuntu 17.10 and creating a new Flutter application, following the official documentation steps to run the application results in no available devices being displayed in the bottom-right device selection area.

Core Solution: Emulator Support in Dart Code Extension

Starting from version 2.13.0 of the Dart Code extension, Visual Studio Code gained the ability to directly launch and manage Flutter emulators. This feature implementation relies on support from the Flutter toolchain, requiring the use of a relatively recent Flutter SDK version.

In Flutter's master channel, this feature has been fully supported. For instance, when testing on Flutter version 0.5.6-pre.61 (master channel), the functionality proved stable and reliable. Users can access this feature through the following method:

// Launch emulator via command palette
1. Press Ctrl + Shift + P to open command palette
2. Type "Flutter: Launch Emulator"
3. Select the desired emulator from the list

Terminal Command Alternatives

In addition to graphical interface operations, developers can use terminal commands to manage emulators. This approach offers greater flexibility in certain scenarios, particularly for automation scripts or batch operations.

First, check the list of installed emulators:

flutter emulators

If no emulators are installed in the system, create a new one using:

flutter emulators --create [--name xyz]

The command format for launching a specific emulator is:

flutter emulators --launch your_emulator_id

For example, to launch an emulator named "Nexus 6 API 28":

flutter emulators --launch "Nexus 6 API 28"

Special Configuration for Genymotion Emulator

For developers using Genymotion as an alternative emulator, special attention to ADB configuration is required. Genymotion offers advantages of being lighter and higher-performing compared to Android Studio's built-in emulators, but requires additional configuration when integrating with Flutter development environments.

Configuration steps include:

1. Open Genymotion and navigate to ADB settings section
2. Select "Use custom Android SDK tools"
3. Set SDK location to point to Android SDK installation directory
4. Confirm folder validity marker displays correctly
5. Close settings dialog and reload Visual Studio Code

After completing these configurations, Visual Studio Code can correctly identify and display available devices even when Genymotion emulator is running.

Version Compatibility Considerations

It's important to note that the direct emulator launch feature in Visual Studio Code has specific requirements for Flutter SDK versions. While the master channel already includes this feature, it may take longer to become available in development and beta channels.

Developers can check their current Flutter channel and version using:

flutter doctor -v

Best Practice Recommendations

Based on practical development experience, developers are advised to:

First ensure both Flutter SDK and Dart Code extension are updated to the latest versions. Regular update checks guarantee access to the latest features and bug fixes.

For emulator selection, choose appropriate tools based on development requirements and personal preferences. Android Studio emulators offer complete functionality, Genymotion provides better performance, while Visual Studio Code's built-in emulator management offers superior integration experience.

When encountering device recognition issues, follow these troubleshooting steps: check ADB connection status, verify emulator is running properly, confirm SDK path configuration is correct, restart development environment, etc.

Conclusion

Through proper configuration of Visual Studio Code and Flutter development environment, developers can fully leverage modern development toolchains. The continuous improvements in Dart Code extension provide more convenient emulator management experiences for Flutter development, while multiple launch methods and third-party emulator support offer flexible choices for various development scenarios.

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.