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

MacOS下用Buildozer构建Python2 Kivy APK遇TLSV1_ALERT_PROTOCOL_VERSION错误

解决Buildozer构建APK时[SSL: TLSV1_ALERT_PROTOCOL_VERSION]错误

问题背景

你在MacOS v10.12.6环境下,用Python2.7.10 + Buildozer v0.35dev构建Kivy应用APK时,卡在了下载hostpython2环节,出现[Errno socket error] [SSL: TLSV1_ALERT_PROTOCOL_VERSION]错误。本地Kivy运行和Android Launcher测试都正常,说明问题出在Buildozer下载依赖时的SSL协议兼容性上。

根本原因

Python2.7.10自带的OpenSSL版本过于老旧,不支持TLS 1.2及以上协议。而当前python.org已经禁用了TLSv1/TLSv1.1这类老旧协议,导致下载hostpython2安装包时SSL握手失败。

解决方案

方法1:升级Python2.7到最新补丁版(推荐)

Python2.7的最终版本2.7.18更新了内置的OpenSSL库,原生支持TLS 1.2,能直接解决这个SSL连接问题:

  1. 先安装Homebrew(如果还没装):
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  2. 安装Python2.7.18:
    brew install python@2
    
  3. 修改Buildozer配置文件buildozer.spec,指定使用新安装的Python路径:
    [app]
    # 保留其他原有配置,添加或修改这一行
    python = /usr/local/bin/python2
    
  4. 重新运行构建命令:
    buildozer android debug
    

方法2:手动下载hostpython2包并修改Recipe

如果不想升级Python,可以手动下载依赖包,让Buildozer跳过在线下载环节:

  1. 手动下载Python-2.7.2.tar.bz2到你的项目目录(比如创建一个packages文件夹专门存放)
  2. 找到python-for-android的hostpython2配置文件:
    ~/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/recipes/hostpython2/__init__.py
    
  3. 打开该文件,找到下载URL的行,替换成本地文件的绝对路径,比如:
    url = 'file:///Users/cck/OneDrive - act/Desk/kivy/packages/Python-2.7.2.tar.bz2'
    
  4. 重新执行构建命令即可。

方法3:临时强制启用TLS兼容(不稳定,仅作备选)

通过环境变量强制Python使用兼容的SSL配置,但这个方法存在安全风险,且不一定在所有环境生效:

export SSL_CIPHERS='DEFAULT@SECLEVEL=1'
export PYTHONHTTPSVERIFY=0
buildozer android debug

额外建议

从你的日志里还看到缺少pkg-config、autoconf、automake、libtoolize这些工具,后续构建其他依赖时大概率会报错,建议提前用Homebrew安装:

brew install pkg-config autoconf automake libtool

另外,Buildozer v0.35dev是较旧的开发版本,建议升级到最新稳定版,能避免很多已知问题:

pip install --upgrade buildozer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 09:05:32