远程ADB服务器运行Gradle测试遇配置难题,求解决方法
解决Gradle测试连接远程ADB服务器的问题
我之前调试远程ADB配合Gradle测试时也踩过类似的坑,给你几个亲测有效的方案:
方案1:通过环境变量直接传递完整ADB服务器地址
其实Gradle的Android插件是支持读取ADB_SERVER_SOCKET环境变量的,可能你之前没在Gradle启动前正确设置这个变量。试试这样操作:
- Linux/macOS:
export ADB_SERVER_SOCKET=tcp:<你的远程主机>:<端口> ./gradlew connectedAndroidTest - Windows:
这样Gradle会直接复用这个指定的远程ADB服务器连接,不用单独拆分设置主机和端口。set ADB_SERVER_SOCKET=tcp:<你的远程主机>:<端口> gradlew connectedAndroidTest
方案2:在Gradle脚本里直接配置ADB参数
如果想把配置固化在项目里,可以在模块级的build.gradle(或build.gradle.kts)中添加ADB服务器的指定配置:
android { adbOptions { serverAddress "<你的远程主机>" serverPort <端口号> } }
或者用Kotlin DSL:
android { adbOptions { serverAddress = "<你的远程主机>" serverPort = <端口号> } }
设置后Gradle运行测试时会主动连接你指定的远程ADB服务器,不需要依赖系统环境变量。
方案3:先手动连接远程ADB再让Gradle复用
先在终端手动完成远程ADB的连接:
adb connect <你的远程主机>:<端口>
确认adb devices能正常列出emulator-5554设备后,直接运行Gradle测试命令即可。此时Gradle会复用当前已经建立好的ADB连接,无需额外配置主机和端口。
额外注意点
- 确保远程主机的ADB端口没有被防火墙拦截
- 提前验证
adb devices能正常识别目标设备,避免Gradle测试时找不到设备 - 如果在CI/CD环境中使用,要确保环境变量能正确传递到Gradle进程中
内容的提问来源于stack exchange,提问作者yakimant
相关产品推荐
相关产品推荐

