最近在研究移动app,想使用genymotion在做联调,结果发现Hbuilder不能自动检测到genymotion模拟器。
环境:
1.Hbuilder 8.1.1
2.genymotion 2.9
3.virtual box 5.18
4.android sdk (android 6.0)
配置好genymotion,使用android studio已经可以正常连接了,genymotion设置中,使用了android sdk 的platform-tools下的adb
打开hbuilder,却死活连不上这个genymotion模拟器。
经过百度,发现是因为hbuilder使用的是自己tools目录下的adb,而genymotion使用的也是自己tools目录下的adb(或者可以设置为android sdk下platform-tools目录下的adb),造成两个adb之间冲突。经过测试,可以自己编一个bat或者ps1文件,把genymotion的adb先kill掉,然后用hbuilder的adb去连接模拟器就可以了。
流程如下:
1.进入genymotion的adb目录,用命令.\adb devices查看当前连接地址(如:192.168.173.101:5555)
PS D:\Applications\Android\SDK\platform-tools> .\adb devices
List of devices attached
192.168.173.101:5555 device
- 使用命令taskkill /f /im adb.exe杀掉所有的adb进程(在此之前可能需要先重命名adb.exe文件,不然它还会自动启动)
PS D:\Applications\Android\SDK\platform-tools>ren adb.exe adb1.exe
PS D:\Applications\Android\SDK\platform-tools>taskkill /f /im adb.exe
成功: 已终止进程 "adb.exe",其 PID 为 11512。
成功: 已终止进程 "adb.exe",其 PID 为 5732。
成功: 已终止进程 "adb.exe",其 PID 为 6768。
- 进入hbuilder的tools目录,执行命令.\adb connect 192.168.173.101:5555(ip:port就是上面通过adb devices查看到的)
PS D:\Applications\Android\SDK\platform-tools>pushd D:\Applications\HBuilder\tools
PS D:\Applications\HBuilder\tools> .\adb connect 192.168.173.101:5555
- 重启hbuilder应该就能看到连接上模拟器了。(记得把genymotion的adb名字改回去,不然下回不能用了)
PS D:\Applications\HBuilder\tools> pushd D:\Applications\Android\SDK\platform-tools
PS D:\Applications\Android\SDK\platform-tools>ren adb1.exe adb.exe
经过测试,成功连接到genymotion模拟器,所以,总结上面的命令,写了个简单ps1命令,用powershell(或者存为bat文件,双击运行即可)运行就可以了(里面文件目录、模拟器地址等要根据实际情况作调整)
pushd D:\Applications\Android\SDK\platform-tools
.\adb devices
ren adb.exe adb1.exe
pushd D:\Applications\HBuilder\tools
taskkill /f /im adb.exe
.\adb connect 192.168.173.101:5555
pushd D:\Applications\Android\SDK\platform-tools
ren adb1.exe adb.exe
pause