找回密码
 会员注册
查看: 30|回复: 0

python安卓开发——kivy打包安卓APK逐步教程

[复制链接]

6

主题

0

回帖

19

积分

新手上路

积分
19
发表于 2024-9-7 14:00:53 | 显示全部楼层 |阅读模式
之前偶尔接触到了python开发app的工具kivy(也能开发windows/linux/mac应用),然后发现网上教程极少,甚至第一步打包apk就劝退了很多人,我也踩了很多坑,最后还是一一解决了,这里写个博文记录下。我选择用buidlozer打包apk,主要参考官方文档:https://buildozer.readthedocs.io/en/latest/installation.html从文档上看,这个工具主要是在linux和macos上用,我这边主要用windows,所以我选择用虚拟机来搭建打包环境。整个搭建过程录频传到b站上了,供参考python安卓开发——kivy打包安卓APK逐步教学一、准备linux环境和相关工具这里直接VMware+Ubuntu20.04解决环境问题,这一有个坑,一定要用18以上的ubuntu,否则可能因为openssl版本导致后续步骤失败。如何安装虚拟机和在虚拟机上安装系统就不赘述了,一般按照安装引导就ok。安装完成后为了后续方便使用,建议安装以下两个工具:openssl-server(linux)+Mobaxterm(windows)。ssh登录linux,方便windows下贴命令,否则的话需要安装vmware-tools,但是感觉这个不太好用。另外也可以通过这个来在虚拟机和windows间传输文件。这个配置也简单,直接sudoaptinstallopenssl-server即可samba。linux上配置samba方便共享文件,这样windows可以直接添加网络位置,可以方便地在windows上编辑文件并在linux编译运行。可参考博文【详细步骤】Ubuntu安装Samba服务及配置共享文件夹进行配置二、准备python环境官方文档说的需要3.8以上版本,因此我也就直接用3.8了。为了后续方便,还是用conda来管理python环境,我这里用的miniconda,因为文件要小一些,所需要的功能也都有。condacreate-nkivypython=3.8sourceactivatekivypipinstallkivy123然后把我们在windows下写的程序传到虚拟机里面,代码是一段简单的demo如下,python./main验证okfromkivy.appimportAppfromkivy.uix.buttonimportButtonclassTestApp(App):defbuild(self):returnButton(text='iPaoMi')TestApp().run()12345678三、buildozer打包apk在工程目录下,执行以下命令3.1初始化在工程目录下执行buildozerinit,会生成一个.spec配置文件,内容可以自己看看,包括App名称等,这里我也没有仔细研究。3.2buildozer-vandroiddebug接下来是个巨坑,官方文档上说明是执行buildozer-vandroiddebug,如果你是初次运行,就可以去泡一杯咖啡了。因为这个过程中会自动下载SDK/NDK等内容。然后第一个坑就来了,如果你是ubuntu16,那么大概跑了十几分钟后会失败,提示ssl之类的错误。其实这里并不需要魔法,可以正常下载,原因就在ubuntu的ssl版本。SDK里面用的python3.10.10,要求openssl版本大于1.1.1如果你愿意折腾,可以试试升级一下是否能解决这个问题,但我建议直接用ubuntu20.04,按官方文档来。然后是第二个坑,如果下载过程中网络波动导致失败,重新尝试下载时,会提示文件已存在,或者是某某工具找不到因为之前下载未完成但是可能文件已经存在,这将影响工具对下载状态的判断,需要删除工程目录下的.buildozer文件夹和用户目录下的.buildozer文件夹然后是第三个坑,下了十几分钟文件后,有一个文件无法下载,看域名确实是需要魔法才能下载,但是这并不意味着我们需要这个文件重新执行之前的命令,发现没有出现前面的问题,开始正式编译了,最终生成目录bin,并在其下能找到apk文件。四、验证这里没有像官方文档中建议那样直接用USB调试,而是简单的将APK文件拖入安卓模拟器验证,执行ok。后续修改代码内容重新编译,大约只需要半分钟即可打包完成。也就是第一次使用比较困难。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 23:00 , Processed in 2.789992 second(s), 33 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表