使用Kivy的Builder模块打包后APP启动崩溃,Buildozer需额外添加什么依赖?
问题解答
1. 依赖相关说明
kivy.lang.Builder属于Kivy官方核心模块,不需要额外添加独立依赖,你只需要在Buildozer配置文件的requirements项中配置python3,kivy即可,不需要额外加其他和Builder相关的依赖。- 你用到的
get_color_from_hex、kivy.core.window也都是Kivy核心模块,同样不需要额外依赖。
2. 应用崩溃核心原因(非依赖配置问题)
你提供的代码存在明显的导入缺失问题,直接触发NameError导致崩溃:
代码中调用了Builder.load_string(code),但是所有导入语句里没有添加from kivy.lang import Builder,未定义的对象被调用会直接闪退,这是崩溃的首要原因。
3. 其他代码优化建议(避免后续异常)
kivy.require ('1.11.0')需要放在所有Kivy相关导入语句的最前面,否则版本校验逻辑不生效,可能出现版本兼容异常。- 代码中
if (text != "="): pass逻辑无意义,你当前的写法会把=也追加到计算字符串中,不符合计算器的常规逻辑,可以调整为判断如果是=就执行计算逻辑,否则才追加字符。 get_color_from_hex(("#3737C4"))多了一层多余的括号,调整为get_color_from_hex("#3737C4")即可。
4. 打包验证方法
先在本地开发环境直接运行Python代码,确认无报错后再执行打包操作。如果打包后仍然崩溃,可以通过buildozer android debug deploy run logcat命令查看运行时的日志,精准定位报错点。
内容的提问来源于stack exchange,提问作者CruzAngel
相关产品推荐
相关产品推荐

