首先,我想说,用python+buildozer+kivy打包apk文件问题是真的不少。
耗时3天里抽时间去搭建这个环境。
好,下面进入正题!!!
virtualBox虚拟机安装
首先安装virtualbox虚拟机,以及下载一个镜像文件
virtualbox没啥好说的,傻瓜式安装。
然后新建一个虚拟电脑,用下载的镜像文件安装系统。
ps:我这边安装的是uBuntu 64
还有个注意的点,磁盘空间记得配置大些,我刚开始弄了10G,安装各种依赖时一下就爆了。导致开机不了。可以参考我的进行设置
Buildozer+kivy安装
这里进入正题,安装buildozer+kivy。
强烈强烈强烈建议,参考官网文档进行安装配置,网上的帖子贼多问题,走了很多弯路。
kivy:https://kivy.org/doc/stable/gettingstarted/installation.html#install-pip
buidozer:https://buildozer.readthedocs.io/en/latest/installation.html#android-on-ubuntu-20-04-64bit
ok,按照官网文档安装完成。
打包apk
首先我们先测试一下主文件是否可以正常运行python3 main.py
一、新建一个文件夹,然后cd到文件夹,终端输入buildozer init
进行初始化
二、把主文件放到新建的文件夹里面,并重命名为main.py
三、输入打包命令buildozer android debug
进行打包时,首次打包会慢一些(其实很慢,慢慢等吧),而且应该还会遇到一系列奇怪的问题卡住或报错。
比如:
一直卡在下载hostpython3这里,且无法继续。此时应该是谷歌链接下载不了问题。可以尝试翻墙解决。我是翻墙后重试了很多次才解决的。如果翻墙还是一直卡住,就多试几次吧。
[INFO]: Downloading hostpython3 from https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz
-
然后,看着hostpython3终于下载完,满心期待的等待打包成功时,又卡住了,emmm....此时内心万马奔腾,什么玩意啊。
- 卡1:
Starting a Gradle Daemon, 2 busy Daemons could not be reused, use --status for details
- 卡2:
[INFO]: Detected highest available build tools version to be 33.0.0-rc4[DEBUG]: -> running gradlew assembleDebug
其实:卡住的地方还有好几个,我只记录了一部分。
- 卡1:
那么,我最后是如何打包成功的呢。就是多试几次,TM居然成功了!!!
我发誓什么都没有动,就是这么神奇
成功后下次打包只要代码正确,以及buildozer.spec配置文件没问题。打包时应该没啥问题了
安装apk
没错,我迫不及待的安装到手机上,打开程序后结果直接闪退了。
查了下问题原因:
原因是我的main.py主文件调用了numpy,但是buildozer.spec配置文件里面未导入。
直接在buildozer.spec文件的requirements字段里面添加numpy库,问题解决
requirements = python3,kivy,requests,numpy
参考处理:https://www.codenong.com/cs106517353/
再次打包安装,成功打开!!
下次使用:
1、进入虚拟环境source kivy_venv/bin/activate
2、cd到buildozer初始化的目录(主文件也在此目录的)
3、运行打包命令buildozer android debug