Genymotion adb 调试命令报错

问题

Genymotion 安装应用后, 当使用 adb 命令的时候报错如下 :

adb server is out of date.  killing...
cannot bind 'tcp:5037'
ADB server didn't ACK
* failed to start daemon *
error:

问题原因

1.调用 adb 命令的 adb 版本和 android/sdk/platform-tools 下的目录adb 版本不一致导致的。

举个例子 : 我的系统是 windows 系统 , 直接调用 adb version :

adb  version

结果如下 : adb version 为 1.0.31

Android Debug Bridge version 1.0.31

然后再进入到 Android Studio 配置的 sdk 路径。 如 :

这里写图片描述

进入 D:\sdk\platform-tools 目录执行下列命令 :

D:\sdk\platform-tools\adb.exe  version

结果如下 :

Android Debug Bridge version 1.0.39
Version 0.0.1-4500957
Installed as D:\sdk\platform-tools\adb.exe

我们看到两个 adb 的版本是不一致的,问题就是出在这里。

问题分析

首先 genymotion 配置的 sdk 路径要保持和 Android Studio 的 SDK 路径一致 , 如下图 :

这里写图片描述

同时检测你的环境变量 (你的环境变量配置了多个 adb 路径 , 导致命令行调用的时候,调用了错误版本的 adb )
以我遇到的问题为例 :
打开 EveryThing (windows 平台下的一个文件搜索软件) 搜索 adb.exe ,
这里写图片描述

发现了一个可疑的 adb.exe c:\Windows 。
执行

 C:\Windows\adb.exe  version

结果如下 :

Android Debug Bridge version 1.0.31 

罪魁祸首在这里,我直接删除了该 adb.exe , 将 D:\sdk 配置到环境变量 。再次执行 : adb version
结果如下 :

Android Debug Bridge version 1.0.39
Version 0.0.1-4500957
Installed as D:\sdk\platform-tools\adb.exe

总结

国内的大部分博客都只是提到了 配置 Genymotion sdk 路径,没有提到 adb 版本冲突。还是 Stack Overflow 好用。

参考链接

https://stackoverflow.com/questions/35959350/react-native-android-genymotion-adb-server-didnt-ack

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值