Kivy应用打包为Android APK后图片无法显示,是什么原因如何解决?
Kivy打包APK后图片无法显示的常见遗漏配置/操作
- 资源打包规则配置缺失
用Buildozer打包时,需确认buildozer.spec文件中以下配置正确:source.include_exts参数追加你用到的图片格式后缀,比如png,jpg,jpeg,webpsource.include_dirs参数包含你存放图片的资源文件夹路径,比如./assets
本地调试时可以直接读取项目目录下的所有文件,未配置打包规则的话图片不会被打包进APK,安装到安卓后自然无法加载。
- 路径写法不兼容跨平台要求
不要用Windows风格的反斜杠\拼接路径,也不要硬编码绝对路径,统一用os.path.join()拼接相对路径,或者调用Kivy提供的App.get_running_app().resource_path()方法处理资源路径,避免不同系统的路径规则差异导致读取失败。 - 文件名大小写不匹配
Windows/macOS的文件系统默认大小写不敏感,代码里写Logo.png、实际文件名为logo.png也能正常读取,但安卓系统大小写敏感,文件名和代码中引用的路径大小写必须完全一致。 - 存储权限未正确配置(仅针对读取设备本地图片的场景)
如果你的应用需要读取安卓设备本地存储的图片,需要在buildozer.spec的android.permissions配置项添加对应权限:安卓12及以下加READ_EXTERNAL_STORAGE,安卓13及以上加READ_MEDIA_IMAGES,同时代码中需要实现动态权限申请逻辑,仅配置静态权限无法正常读取文件。 - 图片格式兼容性问题
部分低版本安卓系统对webp、heic等新格式的支持度较差,可将图片转换为通用的png/jpg格式测试排查。
内容的提问来源于stack exchange,提问作者NoTakeOnlyThrow
相关产品推荐
相关产品推荐

