flutter run: No connected devices

↘锁芯ラ 提交于 2019-11-27 11:37:33
Krunal

Flutter supports both iOS and Android device/simulators.

In terminal, run the flutter devices command to verify that Flutter recognizes your connected Android device.

Here is a reference document, How you can setup Device/Simulator to run your application.

For, Android (on mac system)

Set up your Android device

To prepare to run and test your Flutter app on an Android device, you’ll need an Android device running Android 4.1 (API level 16) or higher.

  1. Enable Developer options and USB debugging on your device. Detailed instructions are available in the Android documentation.
  2. Using a USB cable, plug your phone into your computer. If prompted on your device, authorize your computer to access your device.
  3. In the terminal, run the flutter devices command to verify that Flutter recognizes your connected Android device.
  4. Start your app by running flutter run.

By default, Flutter uses the version of the Android SDK where your adb tool is based. If you want Flutter to use a different installation of the Android SDK, you must set the ANDROID_HOME environment variable to that installation directory.

Set up the Android emulator

To prepare to run and test your Flutter app on the Android emulator, follow these steps:

  1. Enable VM acceleration on your machine.
  2. Launch Android Studio>Tools>Android>AVD Manager and select Create Virtual Device.
  3. Choose a device definition and select Next.
  4. Select one or more system images for the Android versions you want to emulate, and select Next. An x86 or x86_64 image is recommended.
  5. Under Emulated Performance, select Hardware - GLES 2.0 to enable hardware acceleration.
  6. Verify the AVD configuration is correct, and select Finish.

    For details on the above steps, see Managing AVDs.

  7. In Android Virtual Device Manager, click Run in the toolbar. The emulator starts up and displays the default canvas for your selected OS version and device.

  8. Start your app by running flutter run. The connected device name is Android SDK built for , where platform is the chip family, such as x86.

-

Open & Connect Device using Android Studio:

Here is an easier way to open and connect simulators/devices.

Android Studio shows a list of emulators/simulators (installed in your system) or devices (connected to your system). Just select a device, you want to open, from a list, and run project.

Valeriano Costa

I solved the AVD problem with the flutter using the Flutter console.

Step 1:

C: \ Users \ valer> flutter emulators
6 available emulators:

3.2_QVGA_ADP2_API_22 _-_ Lollipop • 3.2in QVGA (ADP2) • Generic • 3.2 QVGA (ADP2) API 22 - Lollipop
Android_ARMv7a
Android_Accelerated_x86
Nexus S API Google Nexus S API 23
Nexus_S_API_25_1080x1920_Nougart_7.1.1_ • pixel • Google • Nexus S API 25 1080x1920 (Nougart 7.1.1)
Pixel_API_28 • pixel • Google • Pixel API 28

To run an emulator, run flutter emulators --launch <emulator id>.

Step 2:

C: \ Users \ valer> flutter emulators --launch Pixel_API_28

I ran mine with Genymotion, probably the best for Flutter.

Setting up is less painful and

Make sure setting ADB under

--YOUR ANDROID SDK PATH --

Mine is C:\Users\user\AppData\Local\Android\Sdk

  • Device Not Found (When setup Flutter in android studio)
  • Project structure -> select latest ANDROID SDK in Project SDK
David

I encounter the same problem as you did. It turns out that your device is not connected with your computer.

Note:

  • If you are using XCode, if both your computer and the device are using the same WIFI, you don't have to connect the device with the computer.
  • For Android, or iOS running under terminal command, if you are using command line to run this, you have to make sure they are connected via cables. Sharing the same WIFI does not work. Make sure your device is really connected.
  • Make sure you allowed USB Debugging on your android device.

If this still does not work, try to fire below command, where you can get richer info and details:

flutter run --verbose

This was my solution. Hope my confusion can help someone else too:

My "Developer Options" was ON,

but the "USB Debbugging" was OFF.

So I turned ON the USB Debbugging and the problem was solved.

None of the suggestions worked, until I ran

flutter config --android-sdk ANDROID_SDK_PATH
Sunil

For window user,

Set environment variable of Flutter SDK(...\flutter_windows_v0.2.8-beta.zip\flutter\bin)

No device connect

For more information, you can check here http://www.developerlibs.com/2018/05/flutter-introduction-and-setup.html

Here is the info from the mentioned page: Add Flutter to Windows Environment variable Path

  1. Navigate in to Flutter SDK folder.
  2. Go inside to bin folder and copy the directory path (in your case C:\Flutter\bin)
  3. Go to “Control Panel > User Accounts > User Accounts > Change my environment variables”
  4. Under “User variables” select path variable and click edit.
  5. Put C:\Flutter\bin and apply.

Same as Flutter Environment, we have to set the Android SDK path if it is on custom location.

  1. Navigate into the Android SDK folder.
  2. Copy the directory path (in your case ..AndroidStudioSDK\sdk)
  3. Go to “Control Panel > User Accounts > User Accounts > Change my environment variables”
  4. Under “User variables” select path variable and click edit.
  5. Put ..AndroidStudioSDK\sdk with ANDROID_HOME and apply.

Tips:

If you facing the following issue,

1.[✗] Android toolchain - develop for Android devices ✗ Unable to locate Android SDK. Install Android Studio from https://developer.android.com/studio/index.html On the 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.

You can resolve it with the following command.

flutter config --android-sdk <android-sdk-location> OR flutter config --android-sdk "android-sdk-location"

  1. Error: Unknown argument --licenses

You can resolve it with Following Command.

flutter -v doctor --android-licenses

Now, Pick the emulator you want to use and click the green arrow to run the project. So, here default screen that is already designed.

There should be at least one device/Simulator connected to run Flutter applications.

Also make sure the USB debugging is enabled in developer settings.

If you have

  • Downloaded the flutter SDK
  • Connected your mobile device and enabled the developer option on the mobile and allowed USB debugging.

And still you are getting "No device connected" then i think you should install ADB driver. It worked for me!! Click here to download

I am facing the same issue with Flutter. But I found another way to work i.e.

  1. First run Android Emulator
  2. Then go to your Flutter Console
  3. Run the command flutter doctor & check whether your emulator is showing under connected devices tag e.g. flutter doctor command success output

  4. Now move to your Flutter project path via Flutter console e.g. for me it is D:\FlutterWorkspace\flutter_demo

  5. Then run flutter run command. e.g. flutter run Wait for few moments you will see your app running into Android Emulator. App is running

One option that I haven't see mentioned so far is that (for my setup) the Developer Option 'Select USB Configuration' must be set to MTP (Media Transfer Protocol).

I am using Linux so here are the step can help. First open studio with root permission, (window : Right-click the program icon > Choose Run As Administrator, linux : sudo ./studio.sh in terminal)

Create emulator with Hardware - GLES 2.0 in hardware acceleration as mentioned here. Open terminal in android studio (Alt+F12)

Run command flutter devices and see the list devices

root@abc-OptiPlex-3050:~/flutter_workspace/my_app/my_app# flutter devices
   Woah! You appear to be trying to run flutter as root.
   We strongly recommend running the flutter tool without superuser privileges.

1 connected device:

Android SDK built for x86 • emulator-5554 • android-x86 • 
Android 8.1.0 (API 27)(emulator)

Finally run from terminal flutter run

root@abc-OptiPlex-3050:~/flutter_workspace/my_app/my_app# flutter run
   Woah! You appear to be trying to run flutter as root.
   We strongly recommend running the flutter tool without superuser privileges.


Using hardware rendering with device Android SDK built for x86. 
If you get graphics artifacts, consider enabling software rendering 
with "--enable-software-rendering".
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...                                       0.7s
Resolving dependencies...                                    1.2s
Running 'gradlew assembleDebug'...                           1.5s
Built build/app/outputs/apk/debug/app-debug.apk.
I/FlutterActivityDelegate(25096): onResume setting current activity to this
Syncing files to device Android SDK built for x86...             
D/        (25096): HostConnection::get() New Host Connection established 
0xe8487780, tid 25116
D/EGL_emulation(25096): eglMakeCurrent: 0xe5b3d8a0: ver 2 0 (tinfo 0xe84832f0)

🔥  To hot reload changes while running, press "r". To hot restart (and 
rebuild state),press "R".An Observatory debugger and profiler on 
Android SDK built for x86 is available at: http://127.0.0.1:8100/
For a more detailed help message, press "h". To quit, press "q".

And do check flutter-sdk path in your project.Configure from this answer

RobertPro

The actual answer did not worked for me.

But setting ANDROID_HOME in you ~/.bash_profile and logout then login, make it work!

This may be an Android Studio issue since It is not setting this environment variable for the open projects.

Jidong Chen

I have same problems while I was debugging with local flutter engine. In such case, if you have set environment variable FLUTTER_ENGINE, you should unset it and restart you IDE.

What I needed to do:

flutter emulators

It will list all available emulators. For iOS you will need to open simulator first.

flutter emulators --launch EMULATOR NAME

This will launch the emulator

And to build it

flutter run -d "EMULATOR ID"

For window user,

The solution for me was running Android Studio as administrator

Jude

None of the above solutions worked for me but I was able to solve it by invalidating catch and restarting my android studio:

File > Invalidate Catches / Restart...

It basically needs a device "connected" to your development machine. If you're using a simulator/emulator running on the machine it should automatically be recognised as a connected device. Another way is to connect a physical device and the setup process varies slightly for Android and iOS devices.

Flutter needs a device to run the app. There are two choices for this.

  1. Run the app on your real phone.
  2. Run the app on a virtual device in your computer.

I would recommend Option 1 because it doesn't use your device resources and is faster.

Option 1:

Unlock developer options on your phone, go to developer setting and turn on USB debugging and connect your phone to your computer. Now run flutter run and it will work.

Option 2:

Open android studio, go to AVD manager, Add a virtual device if you haven't done that yet & run the virtual device. Now run flutter run again and it should work.

Note that this way works with any virtual device and not just virtual device from android studio.

I solved the problem after changing "ANDROID_HOME" to the Environment variables and setting it to the location of your android SDK..in my case C:\Android\Sdk

In my case, flutter devices showed my device correctly and flutter run worked as expected. but the device is not shown in Android Studio.

Here is my sulotion:

in my .bash_profile ,the Android SDK configed like this:

export ANDROID_SDK_ROOT="~/Library/Android/sdk"

seems flutter plugin can not recgize the ~, so I changed it to this way:

export ANDROID_SDK_ROOT="/Users/charliema/Library/Android/sdk"

reopen the Android Studio, it worked.

If the emulator is running and is not being detected by the flutter and adb devices then try connecting it manually by using the following command

abd connect 127.0.0.1:62001

If it fails to connect, try again. The following message should appear

connected to 127.0.0.1:62001

Then try flutter doctor or adb devices to make sure it has been connected successfully.

Go to File->Project Structure->Project SDK(Select the SDK Path in the Android SDK)->OK Make sure your device is connected to the PC.Open GitBash and type: flutter devices. Then run your flutter app.It will work.

I'm using genymotion for testing apps I have same problem when i press the run button i face this error last two hours..

how to fixed this error just reinstall genymotion this error is gone.

in iOS with mac, when i got this error, this works for me :

open -a simulators flutter run

Some times the issue is with the device connection and it's driver

if you already turned on the Developer Option and USB debugging and still unable to connect your Device

you must try this one as it's officially from GOOGLE.

Install OEM USB drivers :

https://developer.android.com/studio/run/oem-usb

For me it was

  1. adding "ANDROID_HOME" to the Environment variables and setting it to D:\dev\android\ (for me)

  2. adding "D:\dev\android\platform-tools" (for me) to Path I put flutter there before

  3. Ok, Ok, Ok Restart Android studio

Well, This query has been answered, I just wanted to add that You can see connected devices if you start the simulator manually on MAC and Android emulator from AVD manager as well.

I had an emulator running but the VSC ide could not connect to it. So I enabled developer mode in the emulator and the debugging options as well. Voila, It worked!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!