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

本文详细记录了使用Python和Kivy开发安卓应用,并通过buildozer打包APK的过程,包括在Windows上搭建Linux环境、准备Python环境、处理buildozer打包中的各种问题,如SSL版本、下载失败和文件冲突等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前偶尔接触到了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。

安装完成后为了后续方便使用,建议安装以下两个工具:

  1. openssl-server(linux)+Mobaxterm(windows)。ssh登录linux,方便windows下贴命令,否则的话需要安装vmware-tools,但是感觉这个不太好用。另外也可以通过这个来在虚拟机和windows间传输文件。这个配置也简单,直接sudo apt install openssl-server即可
  2. samba。linux上配置samba方便共享文件,这样windows可以直接添加网络位置,可以方便地在windows上编辑文件并在linux编译运行。可参考博文【详细步骤】Ubuntu安装Samba服务及配置共享文件夹进行配置

二、准备python环境

官方文档说的需要3.8以上版本,因此我也就直接用3.8了。
为了后续方便,还是用conda来管理python环境,我这里用的miniconda,因为文件要小一些,所需要的功能也都有。

conda create -n kivy python=3.8
source activate kivy
pip install kivy

然后把我们在windows下写的程序传到虚拟机里面,代码是一段简单的demo如下,python ./main验证ok

from kivy.app import App
from kivy.uix.button import Button
 
class TestApp(App):
    def build(self):
        return Button(text='iPaoMi')
 
TestApp().run()

在这里插入图片描述

三、buildozer打包apk

在工程目录下,执行以下命令

3.1 初始化

在工程目录下执行buildozer init,会生成一个.spec配置文件,内容可以自己看看,包括App名称等,这里我也没有仔细研究。

3.2 buildozer -v android debug

接下来是个巨坑,官方文档上说明是执行buildozer -v android debug,如果你是初次运行,就可以去泡一杯咖啡了。因为这个过程中会自动下载SDK/NDK等内容。

然后第一个坑就来了,如果你是ubuntu16,那么大概跑了十几分钟后会失败,提示ssl之类的错误。
其实这里并不需要魔法,可以正常下载,原因就在ubuntu的ssl版本。
SDK里面用的python3.10.10,要求openssl版本大于1.1.1
如果你愿意折腾,可以试试升级一下是否能解决这个问题,但我建议直接用ubuntu20.04,按官方文档来。

然后是第二个坑,如果下载过程中网络波动导致失败,重新尝试下载时,会提示文件已存在,或者是某某工具找不到
因为之前下载未完成但是可能文件已经存在,这将影响工具对下载状态的判断,需要删除工程目录下的.buildozer文件夹和用户目录下的.buildozer文件夹

然后是第三个坑,下了十几分钟文件后,有一个文件无法下载,看域名确实是需要魔法才能下载,但是这并不意味着我们需要这个文件
重新执行之前的命令,发现没有出现前面的问题,开始正式编译了,最终生成目录bin,并在其下能找到apk文件。

四、验证

这里没有像官方文档中建议那样直接用USB调试,而是简单的将APK文件拖入安卓模拟器验证,执行ok。
在这里插入图片描述
后续修改代码内容重新编译,大约只需要半分钟即可打包完成。也就是第一次使用比较困难。

### 使用 Python Kivy 打包 APK 文件教程 #### 环境准备 为了成功将基于 KivyPython 应用程序打包APK 文件,需先安装并配置必要的开发工具和库。这包括但不限于 Python 解释器、pip 工具以及 buildozer 这样的构建工具[^4]。 #### 安装 Buildozer Buildozer 是一个专门用于简化 Kivy 应用程序跨平台打包过程的命令行工具。可以通过 pip 来安装它: ```bash pip install buildozer ``` 由于整个打包过程中涉及到大量网络资源下载(比如 Android SDK/NDK),确保计算机能够正常连接互联网是非常重要的[^5]。 #### 初始化项目结构 创建一个新的工作目录来放置应用程序源码及相关配置文件,并进入该目录执行 `buildozer init` 命令以生成默认设置模板——即名为 `buildozer.spec` 的文本文件。这个文件包含了有关应用的各种元数据信息,如名称、版本号等,同时也指定了要被打包进去的具体依赖项列表。 #### 编辑 Spec 文件 打开刚刚生成的 spec 文件进行编辑,按照实际需求调整各项参数值。特别是注意检查以下几处关键字段: - application requirements (app.requirements): 列举所有外部依赖关系; - source include/exclude patterns (source.include_exts/source.exclude_patterns): 控制哪些类型的文件应该被包含或排除在外; 对于初学者来说,可能还需要花些时间去理解这些选项的确切含义及其影响范围[^2]。 #### 构建与部署 完成上述准备工作之后就可以正式开始编译了。只需简单地输入如下指令即可触发完整的构建流程: ```bash buildozer android debug deploy run ``` 这条语句将会依次完成以下几个动作:首先清理之前残留下来的临时产物;接着依据当前操作系统架构选择合适的编译方案;再者调用 ndk-build 负责底层 C/C++ 部分的汇编链接操作;最后利用 adb 把最终产出物推送至已连接设备上测试运行效果[^1]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值