Kivy开发安卓APK崩溃求助:文件找不到问题排查
解决Kivy应用打包APK后安卓设备找不到资源的问题
问题根源
你在Google Colab单独上传所有文件时,破坏了开发时的目录结构——原本resource/子目录下的图片被直接放到根目录,同时question.md的路径引用未适配安卓环境的资源查找机制,加上spec文件配置未完全匹配目录结构,最终导致资源找不到。
解决方案
1. 恢复Colab中的正确目录结构
在Colab终端执行命令重建目录:
mkdir resource
将menu_img1.png、menu_img2.png上传到resource/目录下,question.md和主Python文件放在根目录,确保和开发时的结构完全一致:
项目根目录/ ├── 主程序.py ├── question.md └── resource/ ├── menu_img1.png └── menu_img2.png
2. 修正代码中的资源引用方式
安卓环境下不能直接用相对路径字符串读取资源,需改用Kivy的resource_find()方法获取正确路径:
- 图片引用修正:
from kivy.resources import resource_find # 替换原有的Image(source='resource/menu_img1.png') img_path = resource_find('resource/menu_img1.png') Image(source=img_path)
- 读取question.md文件修正:
from kivy.resources import resource_find md_file_path = resource_find('question.md') if md_file_path: with open(md_file_path, 'r', encoding='utf-8') as f: md_content = f.read() else: # 可添加文件找不到的异常处理逻辑 pass
3. 完善buildozer.spec配置
确保spec文件中包含以下配置,保证所有资源被正确打包:
# 指定需要打包的文件扩展名 source.include_exts = py,png,jpg,md # 指定需要打包的子目录 source.include_dirs = resource
4. 重新打包APK
在Colab中基于修正后的目录结构和配置文件,重新执行buildozer打包命令。
内容的提问来源于stack exchange,提问作者Israel adjkes
相关产品推荐
相关产品推荐

