无法创建调试桥:无法启动adb服务器:无法获取'adb version'

时间:2016-05-21 18:07:53

标签: android-studio android-emulator adb avd

我在Windows 10 64位上运行Android Studio。我在5/20的早上升级到了最新的版本和SDK,从那时起我在打开Android Studio时遇到了上述错误。我还在事件日志中获得了“无法获得'adb version'的结果”。如果我启动应用程序(在更新之前工作正常),将出现“选择部署目标”窗口,显示“使用加载图形初始化ADB”几秒钟,然后会显示“无显示”消息。以前我设置了4个不同的仿真器,并通过USB连接有源设备。现在......没什么。

创建一个新的模拟器没有任何效果 - 我会完成这些步骤,但仍然会看到“Nothing to show”消息。

我尝试了以下内容:

  • 恢复旧平台工具
  • 删除并重新安装最新的平台工具
  • 完全删除并重新安装Android Studio
  • 安装Genymotion尝试模拟(我可以在Genymotion中创建和启动模拟器,它与AS中的上述问题没有区别)
  • 通过任务管理器杀死adb.exe,然后通过终端运行adb tcpip 5555,输出为:

    • 守护程序未运行。现在在端口5037 *
    • 上启动它
    • 守护进程成功启动* 在TCP模式端口重启:5555

这是令人鼓舞的,但上述同样的问题仍然存在(即使重新启动AS后)。

切换到USB模式并通过终端中的adb返回TCPIP,没有运气。

  • 将整个项目迁移到Eclipse,直到我遇到Google Play服务的支持问题(所以我将不得不坚持使用AS,但我在这里绝望了)

任何可以提供帮助的人 - 我会非常感激。

更新 - 5月23日

我搜索了adb.log,发现它位于与包含AS或我的项目文件的驱动器完全不同的驱动器上的临时文件夹中。关闭所有内容,通过任务管理器杀死adb.exe并删除文件。重新启动AS后,我收到以下消息:

screenshot of message

我可以通过终端开始/杀死ADB。 adb devices导致一个空列表。从我的故障开始之日起,我的idea.log文件中填入了条目。再次重新启动AS导致通常“无法创建调试桥:无法启动adb服务器:无法获取'adb version''消息的结果。

这是我的idea.log文件中的最后一个条目:

  

2016-05-23 10:13:19,081 [824808] INFO - tools.idea.ddms.adb.AdbService - 使用以下方式初始化adb:E:\ Users \ JakeSabre \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe,客户端支持= false   2016-05-23 10:13:24,082 [829809]警告 - #com.android.ddmlib - 无法获得'adb version'的结果   2016-05-23 10:13:24,083 [829810] INFO - ditor.DeployTargetPickerDialog - 无法获取调试桥   java.lang.RuntimeException:无法创建Debug Bridge:无法启动adb服务器:无法获取'adb version'的结果

at com.android.tools.idea.ddms.adb.AdbService$1.run(AdbService.java:236)
at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:366)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:55)

真正奇怪的部分是我昨天设法让事情变得有效 - 但我不知道怎么做。我启动了AS并收到了同样的错误,但后来启动了Eclipse(Mars 2)并通过Eclipse启动了Android设备管理器。一旦我这样做,我就可以通过AS模拟器启动我的应用程序!我把它全部关闭然后再次尝试,只是为了确定它再次起作用。

今天早上我尝试了相同的技巧,但被告知我的SDK丢失了。我检查过,平台工具确实丢失了(不知道为什么)。所以我再次安装它,得到了常见的错误,现在我的Eclipse技巧已经不再适用了。我觉得我在这里的暮光区。

7 个答案:

答案 0 :(得分:3)

解决方案非常简单。打开'命令提示符'作为'管理员',运行adb kill-server,然后运行adb start-server。它对我有用。

答案 1 :(得分:1)

我可能应该这样做是我初步故障排除的一部分,但我最终禁用了Windows防火墙和我的防病毒软件(趋势科技)。防火墙什么也没做,但禁用趋势科技完全解决了这个问题......

出于某种原因,趋势科技决定开始不喜欢亚行创建的守护进程。这么小的事情就是4天的眼泪和沮丧。希望有一天能帮助别人避免它。

答案 2 :(得分:1)

Geez,我不能成为TrendMicro的杀毒软件! ......非常感谢!

这也适用于我的64位Win 10,花了一天时间重新安装AS和ADK并试图找出原因... adb kill-server,然后尝试禁用/启用防病毒,你就会看到差异。

为了实现更精细的控制,将AS的bin \ studio64.exe添加到Trendmicro Antivirus的例外列表中,它就可以很好地调出adb。

答案 3 :(得分:1)

我通过以下链接获得了此修复: https://stackoverflow.com/a/38447003/5521389

进入GenyMotion设置 - > ADB标签, 而不是使用Genymotion Android工具(默认),我选择使用自定义Android SDK工具,然后浏览到我安装的SDK。

答案 4 :(得分:0)

根据您提供的信息,我不确定我要打字的内容是否适用于您的情况。但是,由于没有其他人回答,你可能想要考虑它。

我有一个非常奇怪的情况,我一直没有显示出什么'即使我已经定义了多个模拟类型的Android设备,并且还有一个物理Android设备。

我尝试了各种各样的方法来解决问题而没有成功。然后,我最终找到了一个 adb.log 文件,该文件是在目录目录中创建的,该文件是由Android工具管理的任何常用目录树;通常用于临时存储的目录。对文件的访问权限以某种方式进行了更改,以便调试中涉及的程序之一无法再访问该文件,因此无法正常启动。删除文件解决了问题。下次我尝试开始调试时,一切正常。

虽然我正在使用Linux,但如果Android工具以与Microsoft Windows类似的方式工作,则该文件可能位于由环境变量标识的目录树中, TMP TEMP

答案 5 :(得分:0)

只需从SDK管理器更新平台工具并重新启动编辑器

即可

答案 6 :(得分:0)

在任务管理器中,删除adb.exe

在终端中,运行命令 adb start-server