Buildozer打包Kivy+SQLite3 Android APK遇权限拒绝错误求解决
解决Buildozer打包时sqlite-amalgamation移动权限拒绝问题
检查并修复目录权限
打包失败大概率是项目目录或Buildozer缓存目录的权限归属异常,执行以下命令把权限转回当前用户:sudo chown -R $USER:$USER 你的项目完整路径 sudo chown -R $USER:$USER ~/.buildozer注意不要用root用户直接运行Buildozer,这是权限问题的常见诱因。
清理缓存后重新打包
缓存的sqlite-amalgamation文件可能损坏或权限异常,先清理缓存再重新拉取依赖:buildozer android clean rm -rf ~/.buildozer/android/platform/python-for-android/builds/你的项目名/sqlite3 buildozer android debug指定sqlite3版本或禁用自动下载
在buildozer.spec中添加配置,强制指定稳定版本的sqlite3,避免自动下载的包出现权限问题:requirements = kivy,sqlite3==3.35.4 android.add_aars = sqlite-android-3.35.4.aar如果你的项目已经自带sqlite3本地库,可直接禁用Buildozer的自动更新:
android.skip_update = True临时用sudo应急打包(不推荐长期使用)
紧急情况下可以用root权限执行打包,但之后要修复生成文件的权限:sudo buildozer android debug sudo chown -R $USER:$USER bin/长期用sudo会导致后续更多权限连锁问题,仅作为临时解决方案。
补充:sqlite-amalgamation是python-for-android为Buildozer自动下载的合并版sqlite源码,权限拒绝通常是缓存目录所有者不是当前用户,或下载的文件被系统安全工具锁定。
内容的提问来源于stack exchange,提问作者이지응
相关产品推荐
相关产品推荐

