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

在Android上运行Kivy应用时遭遇ImportError问题求助

解决Kivy在Android上的_PyGen_Send符号缺失问题

核心原因

这个错误本质是编译Kivy的Python版本与运行时Python版本不匹配:_PyGen_Send是Python 3.10+的生成器相关符号,若Kivy的二进制包(如_event.so)是用更低版本Python编译的,或是Python for Android打包时使用的Python版本与本地开发的3.10.10不一致,就会出现符号找不到的情况。

具体修复步骤

  • 用Python for Android(P4A)重新编译适配Python 3.10的Kivy包
    不要使用预编译的Kivy wheel,直接通过P4A的recipes编译:

    python -m pythonforandroid recipes kivy --version 2.2.0 --python 3.10
    

    确保打包时指定的Python版本和本地开发的3.10.10完全一致,P4A会自动匹配编译环境。

  • 明确buildozer的Python版本配置
    在buildozer.spec文件中指定对应Python版本:

    android.python_version = 3.10
    

    同时升级P4A和buildozer到最新版本,避免版本兼容问题:

    pip install --upgrade python-for-android buildozer
    
  • 清理旧编译缓存
    旧缓存可能残留不同版本的编译产物,引发冲突:

    buildozer android clean
    rm -rf .buildozer/
    

    之后重新执行打包命令:

    buildozer android debug deploy run
    
  • 验证架构兼容性
    确认Android设备架构(arm64-v8a/armeabi-v7a)与打包时指定的架构一致,避免因架构不兼容导致符号加载失败。在buildozer.spec中设置:

    android.arch = arm64-v8a
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:22:06