Android Studio - Lollipop,ADB和Genymotion问题:设备不会出现."adb服务器已经过时了.查杀..."

loe*_*chg 116 android adb genymotion android-5.0-lollipop


更新(2014年10月11日):Genymotion发布了2.3.1修复了这个问题.https://cloud.genymotion.com/page/changelog/#231


更新(2014年10月21日):Genymotion回复了我的支持电子邮件,并指出@plackemacher推荐的解决方案是目前建议的解决方案.他们意识到了这个问题.


自从升级到Lollipop后,我在使用Genymotion模拟器时遇到了adb问题.设备未显示在Android Studio中,我在尝试运行时也遇到以下错误adb devices:

$ adb devices

adb server is out of date.  killing...
cannot bind 'tcp:5037'
ADB server didn't ACK
* failed to start daemon *
error:
Run Code Online (Sandbox Code Playgroud)

我不确定是不是因为Lollipop升级或巧合.

编辑/更新:

根据Chris Satton的评论,我调查了多个adb进程是否正在运行(ps aux | grep adb),看起来它是一个Genymotion冲突(?).它看起来包含自己的adb版本.

格雷格72550 0.0 0.0 611164 1508 ?? S 4:14 PM
0:00.02 /Applications/Genymotion.app/Contents/MacOS/player.app/Contents/MacOS/tools/adb -s 192.168.56.102:5555 shell

格雷格72523 0.0 0.0 635956 2296 ?? S 4:14 PM 0:00.02 adb -P 5037 fork-server服务器

pla*_*her 241

试试这个:

killall -9 adb
Run Code Online (Sandbox Code Playgroud)

这应该删除守护进程的所有运行痕迹

编辑:以下最佳解决方案

此问题可能adb与最新版本的平台SDK不兼容.Genymotion针对此问题的最佳解决方案是将Genymotion中的Android SDK设置为您的位置.这可以在"设置"页面中找到.

Genymotion设置窗口

  • 还要确保开发计算机上没有多个ADB副本. (9认同)
  • 或者只使用默认的Genymotion adb设置Android sdk路径. (4认同)
  • @ChrisStratton如何确保只有一份亚行?当我通过任务管理器看到正在运行的进程时,我看到每次运行两个adb.exe实例. (4认同)