编译Android 13-plus时遭遇ccache权限错误及ninja失败求助
解决Android 13-plus编译时ccache权限错误的方案
问题核心定位
该错误源于当前用户对/mnt/ccache/tmp目录无读写执行权限,导致ccache无法创建临时文件,最终中断ninja编译流程。
具体修复步骤
先检查ccache目录的权限及所属用户组:
ls -ld /mnt/ccache /mnt/ccache/tmp从输出中确认目录权限(如
drwxr-xr-x格式)和所属用户/组,判断当前编译用户是否具备对应权限。直接修改目录归属与权限(适用于当前用户为编译环境所有者的场景):
sudo chown -R $USER:$USER /mnt/ccache sudo chmod -R 755 /mnt/ccache/tmp命令中
$USER会自动替换为当前登录的编译用户,确保整个ccache目录及其子目录归用户所有,同时给临时目录配置足够的读写执行权限。若上述方法无效,重置ccache并指定可写临时目录:
先清空现有ccache配置:ccache -C然后在编译前将ccache临时目录指定到用户有权限的路径(比如用户home目录):
export CCACHE_TEMPDIR=$HOME/ccache_tmp mkdir -p $HOME/ccache_tmp完成后重新启动编译流程。
检查挂载目录的权限限制:
如果/mnt/ccache是挂载的外部存储或分区,通过以下命令查看挂载参数:mount | grep /mnt/ccache若存在
noexec、ro等限制权限的选项,修改挂载参数后重新挂载:sudo mount -o remount,rw,exec /mnt/ccache
修复验证
执行完步骤后,先测试ccache状态确认无报错:
ccache -s
若输出正常,再重新启动编译。
内容的提问来源于stack exchange,提问作者Ayush Sins
相关产品推荐
相关产品推荐

