在MAC安装buildozer环境,将kivy代码打包成apk(最新详细笔记版)

1、Kivy 的最低要求是 OpenGL ES 2.0 以及 Android 2.2。这现在绝对是覆盖面很广泛了— Kivy 已经都可以在 Android 智能手表上面运行了。
2、当前在技术上存在的一个限制就是 Android 构建工具只能生成 ARM 平台的 APK 文件,这些文件不能运行于 X86 处理器的 Android 设备上,好在目前 这类 X86 的 Android 设备还不是主流。

3、参考文档:
(1)Kivy 1.9.2 中文开发文档帮助手册教程
(2)buildozer官方文档
(3)buildozer.spec配置示例
(4)gradle下载地址

以下笔记内容是完成打包之后再记录的内容,大致内容都是已经实践确认,细节内容存在出入。

一、Buildozer

1、安装方式

查看参考文档(2)中内容,有详细的安装步骤。

执行命令pip3 install buildozer即可安装成功。

在这里插入图片描述

2、启动方式

  • (1)在对应的代码目录执行buildozer init进行初始化
  • (2)执行buildozer -v android debug开始打包

二、安装相关依赖(重要!!!

当然,整体的打包步骤很简单,但是最麻烦的是依赖环境的安装。下面以打包Android为例。

1、官方文档的安装方式

如图,在官方文档中已经告诉了我们需要用到的依赖包,也可以直接按照文档中的命令直接执行。
在这里插入图片描述
由于个人访问github并不是很畅通,因此使用其他方式安装。

2、单独安装每个依赖

2.1、安装 jdk17.0

这是官方文档中建议安装的版本,因此可以百度搜索其安装方式,并且一定要配置环境变量JAVA_HOME

如下图,在终端执行java -version后,显示17.0的版本时则表示完成。

在这里插入图片描述

2.2、安装open-ssl

在打包时会提示需要安装指定版本openssl1.1.1,但是该版本已被弃用,下载不了。同样的,需要手动下载一个安装包,并放到指定位置。(该部分的步骤没有什么印象了…)

2.3、安装Cython、kivy

印象中记得是需要在虚拟环境中安装一部分第三方库,建议可以提前安装,在打包时会将虚拟环境中的第三方库一起打包,可以检查一部分时间。使用pip进行安装,例如:pip3 install kivy

2.4、安装ANT、SDK、NDK

如图所示,通常情况下打包到这里就会失败,因为下面这几个包下载会提示超时,下载失败。

解决方式:建议将打印出来的日志中的链接复制,手动复制到浏览器中下载,然后再将下载好的文件复制到家目录下的.buildozer/android/platform路径下(大概率能成功!!!)

在这里插入图片描述

2.5、手动安装相关依赖

这部分开始下载官方文档中说明的依赖,同样的可以在日志中找到下载路径,再手动复制到浏览器中下载。
在这里插入图片描述

But,还有需要下载第三方库的报错情况(没有截图了,不过有需要下载的包的列表)

在这里插入图片描述
sdl2_image为例,假设下载路径为:https://github/xxxx/xxxx/SDL2_image-2.8.0.tar.gz
(1)在打包时需要从github下载文件,可以手动复制下载地址到浏览器中下载(我使用手机热点下载都是可以的,文件包很小)。
(2)下载完成后将文件包保存到如图的路径
(3)并根据日志中以.mark-开头的日志,并创建对应的文件
(4)并根据情况修改软件包的名称,.mark-开头的文件中后面的内容表示软件包的名称,一定要修改与日志中的一致

2.6 下载gradle
  • (1) 错误1:需要更改gradle下载地址

修改代码目录/.buildozer/android/platform/python-for-android/pythonforandroid/bootstraps/common/build/gradle/wrapper/gradle-wrapper.properties中的distributionUrl,将参考地址(4)中的地址替换,确保可以正确下载对应的包文件。
在这里插入图片描述
(2)错误2:第一次打包成功,但是之后又失败了…

由于修改了.buildozer.spec文件中的package.name的值,导致重新下载gradle文件。

解决方式:检查第一步中的文件是否修改正确,根本原因还是第一个错误的情况。
在这里插入图片描述

2.7 buildozer.spec配置错误导致的错误

这类情况目前遇到错误,初次可以借鉴参考文档(3)的内容进行配置。

部分配置内容说明:
title:安装软件包时显示的名字,自定义
package.name:编译完成后的软件包名,自定义
source.dir:编译时需要打包的目录,默认.
source.include_exts:需要打包的文件后缀
source.include_patterns:同上一个参数,可以指定某个目录下的文件
requirements:编译时需要下载的第三方库依赖名
其他配置项可以详细阅读官方文档。

三、其他注意问题

1、之后重复打包的问题

若已经成功打包一次,在不修改buildozer.spec文件的情况下,不会重复下载和编译,相当于可以在离线环境下进行打包。

2、不小心删除了虚拟环境中的依赖包文件

打包软件时最重要的文件是项目根目录下的.buildozer目录,以及当前电脑用户的家目录下的.gradle.buildozer目录,建议这几个目录不要删除。

3、打包后文件路径

在项目根目录下会生成一个 bin目录,其中完成的软件包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值