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

Aidl已存在但提示未找到,执行buildozer命令遇SDK构建工具目录缺失问题

解决Buildozer找不到Aidl与build-tools目录缺失的问题

我之前也碰到过类似的情况——明明系统里直接敲aidl能正常执行,但Buildozer构建时就是认不出它,还报build-tools目录不存在的错。大概率是Buildozer的配置和系统环境不匹配,或者它自带的SDK组件下载不完整导致的,给你几个可行的解决步骤:

1. 检查并调整Buildozer配置文件

Buildozer默认不会用系统全局的Android SDK,而是会自己下载一套到~/.buildozer/android/platform/目录下。你需要打开项目根目录的buildozer.spec配置文件,修改几个关键项:

  • 找到# android.sdk =这一行,去掉注释,改成你系统中已有的Android SDK路径(可以用echo $ANDROID_HOME查看系统SDK的位置)
  • 找到# android.build_tools_version = 28.0.3这一行,替换成你系统中已安装的build-tools版本(到$ANDROID_HOME/build-tools目录下就能看到可用版本)
  • 如果系统里的build-tools版本较新,Buildozer可能不兼容,建议指定一个它支持的稳定版本,比如28.0.3或30.0.3

2. 修复build-tools目录缺失问题

如果/home/m/.buildozer/android/platform/android-sdk-20/build-tools确实不存在,有两种处理方式:

  • 让Buildozer重新下载完整组件:先删除~/.buildozer/android/platform/android-sdk-20目录,再重新执行buildozer -v android release,它会自动重新下载对应的SDK和build-tools组件(注意确保网络通畅,下载过程可能耗时较久)
  • 手动软链接系统已有的build-tools:不想重新下载的话,直接把系统的build-tools目录链接到Buildozer期望的路径:
    mkdir -p /home/m/.buildozer/android/platform/android-sdk-20/
    ln -s $ANDROID_HOME/build-tools /home/m/.buildozer/android/platform/android-sdk-20/build-tools
    

3. 确保Buildozer能读取Aidl路径

虽然你直接敲aidl能用,但Buildozer构建时可能没加载系统的环境变量。可以这么处理:

  • 在buildozer.spec里添加环境变量配置,找到# android.env =这一行,修改为:
    android.env = PATH=$PATH:$ANDROID_HOME/build-tools/<你的版本号>
    
    把<你的版本号>替换成实际的build-tools版本,比如28.0.3
  • 检查~/.buildozer目录权限:如果这个目录是之前用root用户创建的,非root用户可能没有读写权限,导致Buildozer无法下载或访问SDK文件,执行以下命令修改权限:
    sudo chown -R $USER:$USER /home/m/.buildozer
    

4. 验证修复效果

修改完配置后,先执行buildozer android clean清理旧的构建缓存,再重新运行buildozer -v android release,应该就能正常找到Aidl和build-tools目录了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:42:51