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

WSL环境下Buildozer无法识别手机设备问题求助

WSL 环境 Buildozer 运行异常排查方案

1. 修复 Gradle 守护进程兼容问题

针对日志中出现的Gradle Daemon不兼容报错,按以下步骤处理:

  • 进入项目目录执行./gradlew --stop终止所有现存的Gradle守护进程
  • 执行rm -rf ~/.gradle/daemon/删除历史守护进程缓存文件,避免版本冲突残留
  • 在项目的buildozer.spec配置文件中指定和虚拟机完全一致的Gradle版本,示例配置:android.gradle_version = 7.4.2

2. 解决 ADB 端口跨环境冲突问题

日志中出现的5037端口是ADB服务端口,WSL与Windows宿主共用ADB时极易出现冲突,按以下步骤修复:

  • WSL侧与Windows侧的ADB版本必须完全一致,分别在WSL终端执行adb version、Windows CMD执行adb version核对版本号,版本不同时直接统一更新到最新版即可
  • 执行adb kill-server关闭WSL侧的ADB服务
  • 执行以下命令将WSL的ADB请求转发到Windows宿主的ADB服务:
    export ADB_SERVER_SOCKET=tcp:$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):5037
    
  • 执行adb devices确认可以正常识别已连接的测试设备,无权限报错或空列表

3. 排查设备无响应问题

  • 检查测试设备是否开启了USB调试、USB安装权限,部分国产设备还需额外开启「USB调试(安全设置)」允许通过USB安装、启动应用
  • 找到Buildozer编译生成的APK文件(默认存放在项目根目录的bin文件夹下),手动传输到设备安装运行,排查是否存在APK编译错误、安装失败、启动闪退问题
  • 执行adb logcat -s python *:S抓取应用启动日志,定位具体报错原因

4. 环境差异校验

  • 不要将项目放在WSL的/mnt/c/等Windows共享目录下编译运行,共享目录的文件系统权限、读写特性差异会导致编译异常,先将项目移动到WSL原生的ext4目录(如~/projects/)下再操作
  • 核对WSL和虚拟机的依赖版本完全一致,分别执行buildozer --version、java -version、python3 --version核对,建议JDK版本统一使用11

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:54:03