Buildozer打包Android报错:找不到SdkManagerCli主类求解决
解决Buildozer打包Kivy应用的SDK Manager错误
核心问题分析
你在Ubuntu环境下的buildozer.spec里填写了Windows格式的Android SDK路径(C:/Users/judah/AppData/Local/Android/Sdk),这是导致路径识别失败的直接原因;同时可能存在Java版本与Android SDK不匹配、SDK组件缺失的问题。
具体解决步骤
修正Android SDK路径
Ubuntu是Linux系统,需使用Linux风格的路径。如果是通过Android Studio安装的SDK,默认路径通常是~/Android/Sdk(当前用户目录下),或者你自定义的Linux路径。修改buildozer.spec中的对应项:android.sdk_path = ~/Android/Sdk注意:路径要用正斜杠
/,不要用Windows的反斜杠或盘符。匹配Java版本
Android SDK Command-line Tools(新版)要求Java 11或17,Ubuntu下执行以下命令检查当前Java版本:java -version如果版本不符合,安装对应版本的OpenJDK:
# 安装OpenJDK 11 sudo apt update && sudo apt install openjdk-11-jdk # 或者安装OpenJDK 17 sudo apt update && sudo apt install openjdk-17-jdk切换默认Java版本(如果安装了多个版本):
sudo update-alternatives --config java按提示选择对应版本的编号即可。
补全Android SDK必要组件
打开Android Studio的SDK Manager,确保安装以下组件:- Android SDK Platform-Tools
- Android SDK Build-Tools(建议选33.0.2等稳定版本)
- Android SDK Platform(对应你打包的API级别,比如Android 13/API 33)
- Command-line Tools(latest)
也可以通过终端命令安装(需确保sdkmanager在PATH中,或进入SDK的cmdline-tools/latest/bin目录执行):
./sdkmanager "platform-tools" "build-tools;33.0.2" "platforms;android-33"优化buildozer.spec配置
调整requirements项,指定明确的Kivy版本以避免兼容问题,比如:requirements = python3==3.10.8,kivy==2.2.1同时补充
source.include_exts,确保必要文件被打包:source.include_exts = py,png,jpg,kv,atlas清理缓存后重新打包
执行命令清理旧的构建缓存,再重新打包:buildozer android clean buildozer android debug deploy run
内容的提问来源于stack exchange,提问作者JStark09
相关产品推荐
相关产品推荐

