分享

使用python kivy构建手机可安装的apk软件,亲测有效

 江海博览 2023-10-26
日丽月和
日丽月和
2023-10-26 14:08

可将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)

使用python kivy构建手机可安装的apk软件,亲测有效

登录官网:https://github.com/kivy/kivy 查看

一、安装lib库

1.1

sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install make git zip unzip dpkg 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 install libncursesw5-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-ip

二、 安装buildozer

sudo pip3 install buildozer

三,打包成apk文件

以上准备工作已经做完,第一次打包会下载所有需要的包,所以打包时需要网络畅通,许多包都是需要在github上下载,所以需稳定访问github,可以找一个加速访问的工具,

3.1 加速器下载地址:
https://github.com/dotnetcore/FastGithub

如果github网络不稳定,可以下载加速器

使用python kivy构建手机可安装的apk软件,亲测有效

将加速器放在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 #将需要导入的第三方包写入
使用python kivy构建手机可安装的apk软件,亲测有效

requirements

sudo buildozer -v android debug #再项目所在目录执行

成功执行完命令后会在项目所在目录下的bin目录下生成apk软件

使用python kivy构建手机可安装的apk软件,亲测有效

四,再次打包其他程序

1. 进入到您要打包成 APK 的软件项目目录中。

2.删除程序目录下原有的buildozer.spec文件,删除程序下原程序的代码文件,切记不要删除.开头的文件,然后重新构建

rm -rf buildozer buildozer init

4.编辑新生成的buildozer.spec 文件将需要加载的第三方文件,已经需要打包进程序的文件结尾加进去(最好都加上Cython,我用的是3.0.1版本,其他第三方模块需要写入)

使用python kivy构建手机可安装的apk软件,亲测有效

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软件环境的过程中会出现各种的问题,大家一定要看日志输出的是什么,第一大问题就是网络问题,有些包需要反复执行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存放的位置,删除原来的文件,将自己下载的文件放到此处。

总之,制作打包环境真的是不易啊,做好环境后给自己的虚机做个快照,以免系统出问题再次构建打包环境。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多