可将python kivy框架编写的程序打包成apk文件,亲测有效。欢迎小伙伴们点赞保藏,以备下次必须时能够快速找到。
下面是自己经过持续尝试,最终能够成功将自定义程序打包成为了手机能安装的app文件,首要要保准网络足够好,在打包编辑过程中会有非常多东西必须在github上下载,
准备:
系统:Ubuntu 20.04.6 LTS
python 版本:Python 3.8.10 系统自带就可
kivy 版本:1.9.1(由自己实质程序编写的版本为准)
buildozer版本 1.5.0
cython: 3.0.1 (看官网上kivy2.2.1对应的版本是3.x.x)
登录官网:https://github.com/kivy/kivy 查看
1、安装lib库
1.1 sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install make git zip unzip dp公斤 libffi-dev zlib1g-dev
sudo apt-get install build-essential libgl1-mesa-dev libgles2-mesa-dev python3-dev
sudo apt-get install autoconf libtool libevent-dev
sudo apt-get install openjdk-11-jdk -y
sudo apt-get install build-essential python-dev python-setuptools
sudo apt-get installlibncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl cython
sudo apt-get install python3-ip2、 安装buildozer sudopip3 install buildozer三,打包成apk文件
以上准备工作已然做完,第1次打包会下载所有必须的包,因此打包时必须网络畅通,许多包都是必须在github上下载,因此需稳定拜访github,能够找一个加速拜访的工具,
3.1 加速器下载位置: https://github.com/dotnetcore/FastGithub
倘若github网络不稳定,能够下载加速器
将加速器放在linux系统上某个自定义目录下: export http_proxy=http://127.0.0.1:38457 #设置网络代理export https_proxy=http://127.0.0.1:38457
env | grep -i proxy#查看当前代理设置
sudo ./fastgithub #将程序解压后执行
3.2 初始化项目 cd 项目路径
创立main.py文件
sudo buildozer init
3.3 修改修改buildozer.spec文件(Cython意见写入,其他第三方模块按照必须写入) requirements = kivy==2.2.1,Cython==3.0.1 #将必须导入的第三方包写入
requirements
sudo buildozer -v android debug #再项目所在目录执行
成功执行完命令后会在项目所在目录下的bin目录下生成apk软件
四,再次打包其他程序
1. 进入到您要打包成 APK 的软件项目目录中。
2.删除程序目录下原有的buildozer.spec文件,删除程序下原程序的代码文件,切记不要删除.开头的文件,而后重新构建 rm -rf buildozer
buildozer init
4.编辑新生成的buildozer.spec 文件将必须加载的第三方文件,已然必须打包进程序的文件结尾加进去(最好都加上Cython,我用的是3.0.1版本,其他第三方模块必须写入)
buildozer.spec文件
5. 运行命令sudo buildozer -v android debug或sudo buildozer android release(详细按照您的需求选取)来构建 APK。 sudo buildozer -v android debug
注:
有时候,buildozer的缓存可能引起文件冲突。你能够尝试清理buildozer的缓存,而后再次运行打包命令。能够经过运行以下命令来清理缓存: buildozer distclean意思是运用 buildozer 工具在 Android 环境中进行构建,并清理构建过程中生成的临时文件和构建输出。 sudo buildozer -v android clean总结:再打包apk软件环境的过程中会显现各样的问题,大众必定要看日志输出的是什么,第1大问题便是网络问题,有些包必须反复执行buildozer多次才可下载。尤其到必须下载jpeg zlip文件的时候,倘若半途网络断掉,必须重新删除已然下载的文件再次执行构建命令。
下面是我最后遇到的问题: # unzip gradle-7.4.1-all.zip Archive: gradle-7.4.1-all.zip End-of-central-directory signature not
found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on the last disk(s) of this
archive. unzip: cannot find zipfile directory in one of gradle-7.4.1-all.zip or
gradle-7.4.1-all.zip.zip, and cannot find gradle-7.4.1-all.zip.ZIP, period
大概意思是gradle-7.4.1-all.zip 无下载成功,其实在执行buildozer构建的时候会提示下载这个文件的位置,大众能够提前下载好,等构建过程中显现上面的问题时,找到gradle-7.4.1-all.zip存放的位置,删除原来的文件,将自己下载的文件放到此处。
总之,制作打包环境真的是很难啊,做好环境后给自己的虚机做个快照,以避免系统出问题再次构建打包环境。
|