颤动运行:未连接设备


227

我正在尝试使用flutter创建示例应用程序(全新安装),还安装了android studio(全新安装)

这是输出 flutter run

flutter run  
No connected devices.

输出 flutter doctor

Doctor summary (to see all details, run flutter doctor -v):
[] Flutter (Channel beta, v0.1.5, on Linux, locale en_US.UTF-8)
[] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[] Android Studio (version 3.0)
[!] VS Code (version 1.20.1)
[!] Connected devices
! No devices available

! Doctor found issues in 2 categories.

有解决这个问题的方法吗?


8
您是否已连接设备(已启用USB调试)或正在运行仿真器?
君特Zöchbauer

flutter devices检查,如果扑能找到任何设备或不
denvercoder9

“未连接的设备”错误通常表示您未在设备上启用开发人员选项。
Shomu '18

对我来说,这种情况发生了大约1分钟,然后似乎正确了。Android Studio可以立即正常运行,但是Flutter似乎在所有方面都过慢,包括使模拟器得到认可。也许要耐心一点,等一杯咖啡后再回来?
米奇

7
我遇到了同样的问题,已通过更改USB电缆进行了修复,因为某些电缆仅用于供电。
蒂亚戈·席尔瓦·费雷拉

Answers:


186

Flutter支持iOS和Android设备/模拟器。

在终端中,运行 flutter devices命令以验证Flutter可以识别您连接的Android设备。

这是一个参考文档,如何设置设备/仿真器以运行您的应用程序。

对于, Android(在Mac系统上)

设置您的Android设备

要准备在Android设备上运行和测试Flutter应用,您需要运行Android 4.1(API级别16)或更高版本的Android设备。

  1. 在设备上启用开发人员选项和USB调试。详细说明可在Android文档中找到。
  2. 使用USB电缆将手机插入计算机。如果设备上出现提示,请授权计算机访问设备。
  3. 在终端中,运行 flutter devices命令以验证Flutter可以识别您连接的Android设备。
  4. 通过运行flutter run启动您的应用。

默认情况下,Flutter使用adb工具所基于的Android SDK版本。如果要Flutter使用其他安装的Android SDK,则必须将ANDROID_HOME环境变量设置为该安装目录。

设置Android模拟器

要准备在Android模拟器上运行和测试您的Flutter应用,请按照以下步骤操作:

  1. 在计算机上启用VM加速。
  2. 启动Android Studio>“工具”>“ Android”>“ AVD Manager”,然后选择“创建虚拟设备”。
  3. 选择设备定义,然后选择下一步。
  4. 为您要模拟的Android版本选择一个或多个系统映像,然后选择“下一步”。建议使用x86或x86_64映像。
  5. 在“模拟性能”下,选择“硬件-GLES 2.0”以启用硬件加速。
  6. 确认AVD配置正确,然后选择完成。

    有关上述步骤的详细信息,请参阅管理AVD。

  7. 在Android虚拟设备管理器中,单击工具栏中的“运行”。模拟器启动,并显示所选操作系统版本和设备的默认画布。

  8. 通过运行flutter run启动您的应用。所连接的设备名称是为构建的Android SDK,其中platform是芯片家族,例如x86。

--

使用Android Studio打开和连接设备:

这是打开和连接模拟器/设备的简便方法。

Android Studio显示了模拟器/模拟器(已安装在系统中)或设备(已连接至系统)的列表。只需从列表中选择要打开的设备,然后运行项目即可。

enter image description here


18
我无法使它正常工作。模拟器运行正常。我可以为其部署并运行Android应用程序。但是Android Studio扑朔迷离的项目一直抱怨没有模拟器。
abjbhat

8
同样在这里,我得到“找不到已连接的设备;请连接设备,或参阅flutter.io/setup以获取入门说明。” 同时,我可以看到仿真器坐在同一屏幕上,正在运行。
olisteadman '19

{SOLVED}经过一段时间的尝试,我完全知道此问题是由损坏的adb文件引起的(默认情况下,“ flutter devices”将调用SDK提供的“ adb”文件,例如我的adb.exe文件)存在于“ C:\ Android \ Sdk \ platform-tools”中)。解决此问题的方法是用另一个adb文件替换该文件(确保已完成以前的备份),可以用我的adb文件替换您的原始adb文件,您可以从以下链接下载该文件:gofile.io/ ?c = c0M3DC。谢谢
nurulhudamustaqim

Mac上的ios呢?我有几台Mac,如果iTunes正在运行,我的2012 MBA(USB-A)将仅使连接可用。即使iTunes可以将同一设备连接到我的2019 MBA(USB-C)颤振器也无法识别该设备,
理查德(Richard)

我的带有USB-A的2012 Macbook Air可以检测到我的iPhone5,但只有在启动iTunes时才能检测到。我的带有USB-C的2019 Macbook Air无法检测到相同的iPhone5(是,受信任,是,在XCode和iTunes中有效)。我的Android手机可在两个系统上运行(没有iTunes),但是在2019年的MBA上我需要一个USB-A / C加密狗。
理查德

95

flutter配置--android-sdk ANDROID_SDK_PATH

要么

  • 找不到设备(在Android Studio中设置Flutter时)
  • 项目结构->在Project SDK中选择最新的ANDROID API

在此处输入图片说明


2
通过设置Project SDK和Module SDK可以对其进行修复。谢谢。
Shirish Kadam19年

2
这解决了我的问题。我有运行中的设备,但flutter无法检测到它们。
Mahdi-Malv

也为我解决了。谢谢!
Lee Casey

为我工作。未选择任何SDK
phyyyl

也为我解决了。
gamofe

35

我使用Flutter控制台解决了颤振中的AVD问题。

第1步:

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

3.2_QVGA_ADP2_API_22 _-_ Lollipop3.2in QVGA (ADP2)Generic3.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 • GoogleNexus S API 25 1080x1920 (Nougart 7.1.1)
Pixel_API_28 • pixel • GooglePixel API 28

要运行仿真器,请运行flutter emulators --launch <emulator id>

第2步:

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

33

这是我的解决方案。希望我的困惑也能帮助其他人:

我的“ 开发人员选项 ”已启用

但是“ USB Debbugging ”已关闭

所以我打开了USB Debbugging,问题解决了。


21

就我而言

文件>项目结构

选择最新的SDK

在此处输入图片说明


这个答案对我也有帮助。谢谢。
Ashish

如果没有选项项目结构,请重新启动android studio
Wilmer

这个答案很有帮助,并解决了问题..非常感谢
Suna Arun

21

在我执行之前,所有建议均无济于事

flutter config --android-sdk ANDROID_SDK_PATH

但使用“ PATH” =您的路径:

flutter config --android-sdk C:\ Users \%youruser%\ AppData \ Local \ Android \ Sdk


在做完之后unable to locate Android SDK
eggrobot78 '19

1
@ eggrobot78能够通过将Android SDK安装位置添加为ANDROID_HOME的环境路径变量来解决此问题。
essbee

17

我遇到了与您相同的问题。事实证明您的设备未与计算机连接。

注意:

  • 如果您使用的是XCode,并且您的计算机和设备都使用相同的WIFI,则不必将设备与计算机连接。
  • 对于在终端命令下运行的Android或iOS,如果您使用命令行来运行此程序,则必须确保它们通过电缆连接。共享相同的WIFI不起作用。确保您的设备已正确连接。
  • 确保您在Android设备上允许USB调试

如果仍然无法解决问题,请尝试在命令下方执行,您可以在其中获取更丰富的信息和详细信息:

flutter run --verbose

1
我遇到过同样的问题,即VS Code可以运行Flutter,而终端则不能。我想知道是否缺少我想让它起作用的论点?这似乎没有道理;我认为VS Code或XCode命令将仅用作CLI的前端。
pipedreambomb19年

16

我需要做的是:

flutter emulators

它将列出所有可用的模拟器。对于iOS,您需要先打开模拟器。

flutter emulators --launch EMULATOR NAME

这将启动模拟器

并建立它

flutter run -d "EMULATOR ID"

15

我和Genymotion一起跑步,可能对Flutter最好。

设置不那么痛苦,而且

确保在以下位置设置ADB

在此处输入图片说明

-您的ANDROID SDK路径-

我的是C:\ Users \ user \ AppData \ Local \ Android \ Sdk


谢谢。我重新安装了Genymotion,不得不这样做。

Genymotion更轻。
罗伯托·戈斯

在Windows 10上,我必须重新启动计算机才能正常工作
NearHuscarl

11

对于窗口用户,

设置Flutter SDK的环境变量(... \ flutter_windows_v0.2.8-beta.zip \ flutter \ bin

没有设备连接

有关更多信息,您可以在此处查看http://www.developerlibs.com/2018/05/flutter-introduction-and-setup.html

这是上述页面的信息: 将Flutter添加到Windows环境变量Path

  1. 导航至Flutter SDK文件夹。
  2. 进入bin文件夹并复制目录路径(在您的情况下为C:\ Flutter \ bin)
  3. 转到“控制面板>用户帐户>用户帐户>更改我的环境变量”
  4. 在“用户变量”下,选择路径变量,然后单击编辑。
  5. 放入C:\ Flutter \ bin并应用。

与Flutter Environment一样,如果它位于自定义位置,则必须设置Android SDK路径。

  1. 导航到Android SDK文件夹。
  2. 复制目录路径(在您的情况下为..AndroidStudioSDK \ sdk)
  3. 转到“控制面板>用户帐户>用户帐户>更改我的环境变量”
  4. 在“用户变量”下,选择路径变量,然后单击编辑。
  5. 将..AndroidStudioSDK \ sdk与ANDROID_HOME放置并应用。

提示:

如果您遇到以下问题,

1. [✗] Android工具链-为Android设备开发✗无法找到Android SDK。从https://developer.android.com/studio/index.html安装Android Studio。 首次启动时,它将帮助您安装Android SDK组件。(或访问https://flutter.io/setup/#android-setup了解详细说明)。

如果Android SDK已安装到自定义位置,则将$ ANDROID_HOME设置到该位置。

您可以使用以下命令解决它。

flutter config --android-sdk <android-sdk-location> 要么 flutter config --android-sdk "android-sdk-location"

  1. 错误:未知参数--licenses

您可以使用“跟随命令”解决它。

flutter -v doctor --android-licenses

现在,选择您要使用的仿真器,然后单击绿色箭头以运行该项目。因此,此处已设计了默认屏幕。


10

有时,您的一切都很完美,但是该设备不再在ADB上得到授权。在这种情况下,您具有ADB,但它不会在连接的设备中显示您。

解决此问题的步骤

1.检查是否已授权: 打开terminal / cmd / PowerShell并写入adb设备,它将显示您所有已连接设备到PC。

<ANDROID_SDK_HOME>\platform-tools>adb devices
List of devices attached
4df798d76f98cf6d        unauthorized

2.撤销手机上的USB调试

如果设备显示为未授权,请转到手机上的开发人员选项,然后单击“撤销USB调试授权”(已通过JellyBean和Samsung GalaxyIII测试)。

3.重新启动ADB服务器:

adb kill-server
adb start-server

4.重新连接设备并再次运行以下命令:adb devices

现在它应该显示授权。

5.准备出发。

现在,打开编辑器Android Studio / Visual Studio Code,然后检查您的设备是否在连接的设备中显示。

您可以使用flutter doctor命令简单地进行检查。



8

如果你有

  • 下载了flutter SDK
  • 已连接您的移动设备,并在移动设备上启用了开发人员选项,并允许进行USB调试。

而且您仍然会收到“未连接设备”的信息,我认为您应该安装ADB驱动程序。它为我工作! 点击这里下载


8

我在Flutter面临着同样的问题。但是我找到了另一种工作方式

  1. 首次运行Android模拟器
  2. 然后转到Flutter控制台
  3. 运行命令flutter doctor并检查模拟器是否显示在已连接设备标签下,例如 在此处输入图片说明

  4. 现在通过Flutter控制台移动到Flutter项目路径,例如对我来说是D:\ FlutterWorkspace \ flutter_demo

  5. 然后运行flutter run命令。例如

在此处输入图片说明

等待片刻,您将看到您的应用程序正在运行Android模拟器。 在此处输入图片说明


6

到目前为止,我尚未提到的一个选项是(对于我的设置)开发人员选项“选择USB配置”必须设置为MTP(媒体传输协议)。


6

我正在使用Linux,因此以下步骤可以提供帮助。首先打开具有root权限的studio,(窗口:右键单击程序图标>选择Run As Administrator,Linux:sudo ./studio.sh在终端中)

如此处所述,在硬件加速中 使用Hardware-GLES 2.0创建仿真器。在Android Studio中打开终端(Alt + F12)

运行命令flutter 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)

最终从终端运行 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".

并检查项目中的flutter-sdk路径。从此答案进行配置


4

实际的答案对我没有用。

但是设置ANDROID_HOME您的~/.bash_profile身份并注销然后再登录,即可使用!

这可能是Android Studio的问题,因为它没有为打开的项目设置此环境变量。


4

在使用本地Flutter引擎进行调试时,我遇到了同样的问题。在这种情况下,如果设置了环境变量FLUTTER_ENGINE,则应取消设置它,然后重新启动IDE。


4

以上解决方案均不适合我,但我可以通过使catch我的android studio 无效并重新启动来解决此问题:

File > Invalidate Catches / Restart...

唯一有效的解决方案
真正的19

4

请执行以下步骤:
文件 -> 项目结构 -> 项目SDK(在Android SDK中选择SDK路径)-> 确定

确保您的设备已连接到PC。

打开GitBash并输入:flutter devices。然后运行您的flutter应用程序。


3

Flutter需要一台设备来运行该应用程序。有两种选择。

  1. 在您的真实手机上运行该应用。
  2. 在计算机上的虚拟设备上运行该应用程序。

我建议使用选项1,因为它不占用您的设备资源并且速度更快。

选项1:

解锁手机上的开发人员选项,进入开发人员设置并打开USB调试,然后将手机连接到计算机。现在运行flutter run,它将起作用。

选项2:

打开android studio,转到AVD管理器,如果尚未添加虚拟设备,请运行该虚拟设备。现在flutter run再次运行,它应该可以工作。

请注意,这种方式适用于任何虚拟设备,而不仅仅是Android Studio中的虚拟设备。



3

这是我的解决方案。希望我的困惑也能帮助其他人:

我的“开发人员选项”已启用,

但是“ USB Debbugging”已关闭。

所以我打开了USB Debbugging,问题解决了。



2

基本上,它需要一个“连接”到您的开发机器的设备。如果您使用在计算机上运行的模拟器,则应自动将其识别为连接的设备。另一种方法是连接物理设备,并且Android和iOS设备的设置过程略有不同。


2

对我来说

  1. 将“ ANDROID_HOME”添加到环境变量并将其设置为D:\ dev \ android \(对我来说)

  2. 将“ D:\ dev \ android \ platform-tools”(对我来说)添加到路径, 我之前在这里

  3. 好,好,好重新启动Android studio


2

就我而言 flutter devices为例,正确显示了我的设备并且颤振运行正常。但该设备未在Android Studio中显示。

这是我的事。

在我.bash_profile的Android SDK中,配置如下:

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

似乎flutter插件无法识别~,因此我将其更改为这种方式:

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

重新打开Android Studio,它起作用了。


2

我在Mac中使用Visual Studio Code,并试图在iPhone上运行Flutter代码。设备未显示在状态栏中。我通过在终端中解决此问题:

rm -rf <flutter_repo_directory>/bin/cache
flutter doctor -v

基本上,这将从Flutter存储库文件夹中清除所有缓存数据。因此,当您运行Flutter Doctor时,它将首先下载一些文件


我总是遇到同样的问题,下面的步骤将对您有所帮助
废话

我的iPhone无法通过Mac系统上的抖动识别。尝试了很多方法,您的效果很好
谢谢〜– Pulller

2

注意:我正在使用在Android 10上运行的Mi(小米)手机(Redmi K20 Pro)

您需要做两件事才能显示设备清单。

1)转到您的Android Studio->文件->项目结构,然后从选项中选择Project SDK。我从菜单中选择了最新的一个。

2)当您将真实设备连接到PC /笔记本电脑时,请确保选择Transfer photos (PTP) mode

注意:请勿选择文件传输模式。不起作用。

完成上述两项操作后,您可以通过flutter devices在命令提示符下编写来检查设备可用性的状态。

我希望它能显示您的移动设备。


2

步骤1:要检查连接的设备,请运行:flutter devices

步骤2:如果没有连接的设备以​​查看可用仿真器的列表,请运行:flutter emulators

步骤3:要运行仿真器,请运行:flutter emulators --launch <emulator id>

步骤4:如果没有可用的仿真器,请运行:flutter emulators --create [--name xyz]

==>对于ANDROID:

步骤1:要检查仿真器列表,请运行:emulator -list-avds

步骤2:现在启动仿真器,运行:emulator -avd avd_name

==>对于iOS:

第1步: open -a simulator

第2步: flutter run在您的应用目录中)

我希望这能解决您的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.