Android Studio – 棒棒糖,ADB和Genymotion问题:设备不会显示。 “adb服务器已过期。 杀……”


更新(11/10/14):Genymotion已经发布了2.3.1修复了这个问题。 https://cloud.genymotion.com/page/changelog/#231


更新(10/21/14):Genymotion回复我的支持电子邮件,并指出下面的@ plackemacher推荐的解决scheme是目前build议的修复程序。 他们知道这个问题。


由于升级到棒棒糖,使用Genymotion模拟器时,我有问题。 设备不会在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: 

我不确定是因为棒棒糖升级还是巧合。

编辑/更新

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

greg 72550 0.0 0.0 611164 1508 ?? 下午4:14
0:00.02 /Applications/Genymotion.app/Contents/MacOS/player.app/Contents/MacOS/tools/adb -s 192.168.56.102:5555 shell

greg 72523 0.0 0.0 635956 2296 ?? S 4:14 PM 0:00.02 adb -P 5037分叉服务器服务器

尝试运行这个:

 killall -9 adb 

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

编辑:下面的最佳解决scheme

这个问题可能与最新版本的平台SDK不兼容。 Genymotion解决此问题的最佳解决scheme是将Genymotion中的Android SDK设置为您的位置。 这可以在设置页面中find。

Genymotion设置窗口

在我的情况下,问题是我已经安装了adb工具和fastboot使用这个命令

 sudo apt-get install android-tools-adb android-tools-fastboot 

在存储库中,所以在这种情况下,这个可执行文件会进入/usr/bin/目录,以便您可以在系统范围内使用它( $PATHvariables)。

另外,我在上面的答案中configuration了genymotion的android studio。

所以当我试图访问adb(在我的情况下adb shell )它试图启动adb进程(服务器)的另一个副本,并绑定到默认端口,所以问题在这里。

我刚才卸载了android-tools-adb android-tools-fastboot ,并将我的Android SDK的path添加到$PATHvariables

在Ubuntu上使用genymotion。

我的解决scheme是实际使用二进制代替PATH'd adb。

~/genymotion/tools/abd reboot

另外我在genymotion中有自定义的SDK。

最后什么对我有用,我认为是免费的是你只需从platform-tools文件夹直接运行adb命令。 例如,使用./adb devices查看设备。 我也将genymotion的SDK更改为android的默认SDK,但我不确定如果没有这样做,它是行不通的。

我想,如果你想使用adb它更好地使用android studio模拟器和testing你想要什么,你可以使用Genymotion

没有任何解决scheme帮助Ubuntu。 只需将.apk文件拖到Genymotion设备的屏幕上,应用程序将被安装。

Ubuntu 15.04,Genymotion 2.5.2

将Android SDK添加到$PATHvariables。

我只是使用./adb重启Android / Sdk / platform-tools /

接受的答案对我来说不起作用,尽pipe这个想法只是用一个不同的命令:

 pkill adb 

我正在运行Ubuntu的MATE 1.8.2和Genymotion 2.6。