You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle/Cordova与ADB存在冲突?Ubuntu设备识别异常求助

解决Ubuntu下ADB识别异常及Cordova运行卡住问题

针对你遇到的Ubuntu环境下ADB识别不稳定、Cordova运行卡住的问题,以下是几个针对性的解决方向:

1. 排查ADB版本冲突

全局安装Cordova后,可能引入了其他版本的ADB(比如Cordova依赖的ADB与你通过apt安装的版本不一致),导致识别冲突:

  • 执行which adb确认当前使用的ADB路径,确保是apt安装的路径(通常为/usr/bin/adb)
  • 执行adb version查看版本,同时检查Cordova依赖的ADB版本:通过npm list -g cordova找到Cordova安装目录,查看其内置的ADB版本
  • 若存在版本冲突,可将apt安装的ADB路径优先级调高,或卸载冲突的ADB版本

2. 修复USB设备权限问题

Ubuntu下ADB需要正确的udev权限才能稳定识别设备,全局安装工具后可能权限配置被覆盖:

  • 创建或修改udev规则文件:sudo nano /etc/udev/rules.d/51-android.rules,添加以下内容(替换为你的设备厂商ID,可通过lsusb查看):
    SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", MODE="0666", GROUP="plugdev"
    
  • 重新加载udev规则:sudo udevadm control --reload-rules && sudo udevadm trigger
  • 将当前用户加入plugdev组:sudo usermod -aG plugdev $USER,重启系统后生效

3. 解决Cordova运行卡住的问题

当ADB已识别设备但cordova run android --device卡在cat /proc/cpuinfo时:

  • 先手动执行adb shell cat /proc/cpuinfo,如果命令本身卡住,说明ADB与设备连接不稳定,可尝试:
    • 重启ADB服务:adb kill-server && adb start-server
    • 撤销设备上的USB调试授权,重新插拔设备并授权
  • 修改Cordova的ADB超时设置:在项目根目录的config.xml中添加:
    <preference name="android-adb-timeout" value="15000" />
    
    延长超时时间,避免因设备响应慢导致卡住

4. 隔离全局Gradle的干扰

全局Gradle可能与项目内置的Gradle版本冲突,间接影响ADB的资源占用:

  • 避免使用全局Gradle,改用项目本地的Gradle wrapper(项目根目录的gradlew脚本)执行构建命令
  • 清理项目构建缓存:./gradlew clean,再重新执行Cordova的运行命令

另外,连接设备时出现“显示后消失、offline后消失”的情况,大多是权限或版本冲突导致的,按上述步骤排查后通常能解决。

内容的提问来源于stack exchange,提问作者Caleb Pitman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:03:15