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

原生Linux Mint下Buildozer编译Kivy项目遇sh.CommandNotFound错误

解决Buildozer打包Kivy项目时sh.CommandNotFound: ./download.sh错误及原生Linux使用指南

一、sh.CommandNotFound: ./download.sh错误解决方案

该错误源于SDL2_image构建脚本无法找到download.sh文件,多为源码克隆不完整或权限异常导致,按以下步骤修复:

  1. 清理缓存并强制重新拉取依赖

    buildozer android clean
    rm -rf .buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/bootstrap_builds/sdl2
    

    执行后重新运行buildozer android debug,让Buildozer重新下载完整的SDL2组件。

  2. 手动修复文件权限与源码
    如果清理后仍报错,进入指定目录检查:

    cd /home/jacob/Desktop/Projects/BT_Relay_App/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/bootstrap_builds/sdl2/jni/SDL2_image/external
    
    • 若download.sh不存在,重新克隆SDL2_image源码:
      rm -rf SDL2_image
      git clone https://github.com/libsdl-org/SDL_image.git SDL2_image
      
    • 给脚本添加执行权限:
      chmod +x SDL2_image/external/download.sh
      
  3. 修正Buildozer配置文件
    打开项目根目录的buildozer.spec,调整以下配置:

    android.bootstrap = sdl2
    requirements = python3,kivy,pandas
    # 移除os、time、threading,这些是Python内置库,无需添加到requirements
    

二、原生Linux环境下Buildozer使用教程

1. 安装系统依赖

sudo apt update
sudo apt install -y git build-essential python3-pip python3-dev openjdk-11-jdk unzip zip
pip3 install kivy buildozer

2. 初始化项目配置

进入Kivy项目目录,执行初始化命令生成配置文件:

buildozer init

编辑生成的buildozer.spec,重点配置以下项:

  • title:应用名称
  • package.name:应用包名(格式如com.yourname.yourapp)
  • requirements:仅列出第三方依赖库(如python3,kivy,pandas)
  • android.api:指定Android API级别(建议30及以上)
  • android.ndk_api:与android.api匹配,如21或更高

3. 执行构建

首次构建会自动下载Android SDK、NDK等依赖,耗时较长,请确保网络稳定:

buildozer android debug

构建完成后,APK文件会生成在bin/目录下。

4. 常见问题处理

  • 依赖下载失败:删除项目目录下的.buildozer文件夹,重新执行构建命令。
  • 权限异常:避免用sudo执行Buildozer,确保当前用户对项目目录有读写权限。
  • Cython版本冲突:安装指定版本的Cython,如pip3 install cython==0.29.33。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:50:29