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

WSL环境下Android构建执行lunch命令失败求助

解决WSL中Android构建lunch命令提示文件不存在的问题

我之前在WSL里编译Android源码也踩过类似的跨文件系统坑,结合你的情况,给你几个靠谱的排查和解决方法:

可能的原因&解决方案

1. Windows分区挂载权限/元数据问题

WSL挂载Windows磁盘(比如你的/mnt/e)时,默认权限配置可能导致Android构建脚本无法正确识别文件。你可以重新挂载分区,加上元数据和权限参数:

# 先卸载当前挂载
sudo umount /mnt/e
# 重新挂载,UID/GID可通过`id`命令查看自己的用户ID
sudo mount -t drvfs E: /mnt/e -o metadata,uid=1000,gid=1000,umask=022

metadata参数让WSL能识别Windows文件的权限属性,uid/gid对应你WSL用户的ID,umask确保文件有合理的读写权限,避免脚本因权限问题误判文件不存在。

2. Windows长路径限制触发的假象

Android源码里很多深层目录的路径长度容易超过Windows默认的260字符限制,这时候WSL访问这些路径会出现“文件不存在”的错误,但实际文件是存在的。解决方法是开启Windows长路径支持:

  • 用管理员权限打开组策略编辑器(gpedit.msc),依次找到:计算机配置 > 管理模板 > 系统 > 文件系统 > 启用Win32长路径,设置为已启用,然后重启电脑。
  • 如果是家庭版Windows没有组策略,就打开注册表编辑器(regedit),定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,把LongPathsEnabled的数值改成1,重启电脑生效。

3. 转移源码到WSL内部文件系统编译

WSL访问Windows分区的兼容性始终不如自身的ext4文件系统,哪怕你把源码放在HDD,也可以考虑把WSL的虚拟磁盘迁移到HDD,然后把源码放在WSL内部目录(比如~/androidworkdir):

# 复制源码到WSL内部目录
cp -r /mnt/e/GJSie/androidworkdir ~/
# 切换到内部目录执行构建命令
cd ~/androidworkdir
source build/envsetup.sh
lunch

如果你的SSD满了,可以把WSL的虚拟磁盘移到HDD:打开PowerShell,用wsl --export Ubuntu-18.04 D:\wsl-ubuntu.tar导出,然后wsl --unregister Ubuntu-18.04,再wsl --import Ubuntu-18.04 D:\wsl-ubuntu D:\wsl-ubuntu.tar,这样WSL的系统文件就存在HDD上了。

4. 升级WSL版本和repo工具

如果用的是WSL 1,强烈建议升级到WSL 2,它的文件系统性能和兼容性对大型项目友好很多:

# 在Windows的PowerShell里执行
wsl --set-version Ubuntu-18.04 2

另外Ubuntu 18.04自带的repo版本可能偏旧,更新一下repo:

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
# 确保~/bin在PATH里,执行echo $PATH查看,不在的话可以加到~/.bashrc里
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

你的报错信息

gjsman@DESKTOP:/mnt/e/GJSie/androidworkdir$ lunch
Youre building on Linux
Lunch menu... pick a combo:
11:00:49 Could not create module-finder: finder encountered 18 errors:
[/mnt/e/GJSie/androidworkdir/tools/tradefederation/core/prod-tests/src/com/android/app/tests: lstat /mnt/e/GJSie/androidworkdir/tools/tradefederation/core/prod-tests/src/com/android/app/tests: no such file or directory
/mnt/e/GJSie/androidworkdir/tools/tradefederation/core/prod-tests/src/com/android/graphics/tests: lstat /mnt/e/GJSie/androidworkdir/tools/tradefederation/core/prod-tests/src/com/android/graphics/tests: no such file or directory
/mnt/e/GJSie/androidworkdir/tools/tradefederation/core/prod-tests/src/com/android/security/tests: lstat /mnt/e/GJSie/androidworkdir/tools/tradefederation/core/prod-tests/src/com/android/security/tests: no such file or directory
/mnt/e/GJSie/androidworkdir/tools/tradefederation/core/prod-tests/src/com/android/wireless/tests: lstat /mnt/e/GJSie/androidworkdir/tools/tradefederation/core/prod-tests/src/com/android/wireless/tests: no such file or directory
/mnt/e/GJSie/androidworkdir/tools/tradefederation/core/prod-tests/src/com/android/framework/tests: lstat /mnt/e/GJSie/androidworkdir/tools/tradefederation/core/prod-tests/src/com/android/framework/tests: no such file or directory
/mnt/e/GJSie/androidworkdir/prebuilts/gradle-plugin/com/android/tools/build/builder-test-api/0.13.0: lstat /mnt/e/GJSie/androidworkdir/prebuilts/gradle-plugin/com/android/tools/build/builder-test-api/0.13.0: no such file or directory
/mnt/e/GJSie/androidworkdir/external/perfetto/src/ftrace_reader/test/data/android_hammerhead_MRA59G_3.4.0/events/vmscan/mm_vmscan_memcg_isolate: lstat /mnt/e/GJSie/androidworkdir/external/perfetto/src/ftrace_reader/test/data/android_hammerhead_MRA59G_3.4.0/events/vmscan/mm_vmscan_memcg_isolate: no such file or directory
/mnt/e/GJSie/androidworkdir/external/perfetto/src/ftrace_reader/test/data/android_hammerhead_MRA59G_3.4.0/events/vmscan/mm_vmscan_memcg_reclaim_begin: lstat /mnt/e/GJSie/androidworkdir/external/perfetto/src/ftrace_reader/test/data/android_hammerhead_MRA59G_3.4.0/events/vmscan/mm_vmscan_memcg_reclaim_begin: no such file or directory
/mnt/e/GJSie/androidworkdir/external/perfetto/src/ftrace_reader/test/data/android_hammerhead_MRA59G_3.4.0/events/vmscan/mm_vmscan_memcg_reclaim_end: lstat /mnt/e/GJSie/androidworkdir/external/perfetto/src/ftrace_reader/test/data/android_hammerhead_MRA59G_3.4.0/events/vmscan/mm_vmscan_memcg_reclaim_end: no such file or directory
/mnt/e/GJSie/androidworkdir/external/perfetto/src/ftrace_reader/test/data/android_hammerhead_MRA59G_3.4.0/events/vmscan/mm_vmscan_memcg_softlimit_reclaim_begin: lstat /mnt/e/GJSie/androidworkdir/external/perfetto/src/ftrace_reader/test/data/android_hammerhead_MRA59G_3.4.0/events/vmscan/mm_vmscan_memcg_softlimit_reclaim_begin: no such file or directory]...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:18:58