kivy是什么,自己百度,不过多赘言。
使用:
python3.8
Windows10
Ubuntu20.04
目录
7、最后,应该在main.py所在目录下bin/目录中有一个 APK 或 AAB 文件。
1、一个kivy示例
windows下安装kivy包也不再赘述。安装后写一个main.py如下。
#qpy:kivy
import kivy
from kivy.app import App
from kivy.uix.button import Button
class MyApp(App):
def build(self):
return Button(text='Hello World')
if __name__ in ('__android__', '__main__'):
MyApp().run()
windows下,运行一下:
没问题。
2、win10开启wsl,安装Ubuntu子系统
但是,因为要用到python3.8,而Ubuntu18.04带有的python是3.6.9。所以我们选用Ubuntu20.04,带有python3.8.1。
与参考链接仅两点不同:
(1)Windows应用商店下载的是:
(2)Ubuntu20.04换源如下:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
3、Ubuntu上试运行示例
安装kivy:
完全按照官方文档,安装。
引用:Installing Kivy — Kivy 2.1.0 documentation
(1)安装pip
sudo apt install python3-pip
(2)安装 virtualenv
python3 -m pip install --upgrade pip setuptools virtualenv
(3)创建虚拟环境
# kivy_venv创建在当前目录中命名的虚拟环境
python3 -m virtualenv kivy_venv
(4)进入虚拟环境
# 官方写的少了个/,后面可能会报错找不到资源
source /kivy_venv/bin/activate
(5)直接安装最新的尖端kivy。
开始我装的稳定版,报错了(运行maini的时候报错啥app啥没有windows啥的)
python3 -m pip install "kivy[base] @ https://github.com/kivy/kivy/archive/master.zip"
(6) 试着运行一下main.py
需要打开XLaunch,毕竟需要展示图形。
mnt下是windows的C、D、E、F盘。
我的main.py在f盘mytelegramapp文件夹,先进入
cd /mnt/f/mytelegramapp
运行:
python3 main.py
成功在XLaunch上展示
4、安装buildozer
引用:Python Kivy打包成安卓App_fcdm_的博客-CSDN博客_buildozer打包apk
(1)安装buildozer
pip3 install buildozer
(2)然后安装buildozer
的依赖项
sudo apt update
sudo apt install -y git zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev lld
pip3 install Cython
(3)然后在~/.bashrc
文件中加入环境变量,使用vim打开配置文件:
sudo vim ~/.bashrc
(4)将光标移至文件末尾,按i
进入编辑(插入)模式。另起一行,将下面代码添加在文件末尾:
export PATH=$PATH:~/.local/bin/
5、开启代理
第一次编译过程中会自动下载许多东西,很慢、很大。几个G。
有些链接在国内好像连接不上,所以会中断,然后报错。
中断后重试你可能会遇到一个错误:sdkmanager path "/home/lukasmatrix/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager" does not exist, sdkmanager is notinstalled
总之,为了避免连接中断,开启代理还是有必要的。
wls2设置代理参考 https://www.cnblogs.com/tuilk/p/16287472.html
(1)首先要在你的代理软件里设置一下
(2 )打开
vi ~/.bashrc
(3)然后在里面插入
export https_proxy=http://你的Windows的ip: 代理软件设置的端口
export http_proxy=http://你的Windows的ip: 代理软件设置的端口
ip就是电脑的vipv4。端口号在自己的代理软件里找,比如r2vayN在界面最下面。
(4)更新
source ~/.bashrc
curl http://www.google.com
6、编译,生成apk
在开始之前,需要在Windows系统中修改一下权限。
打开main.py所在文件夹的属性,给自己的windows用户授予这些权限
如果你在最后一步遇到错误:shutil.Error: [('/mnt/d/think_dignity_projects/avsar/avsar_androidAPP/.buildozer/applibs', '/mnt/d/think_dignity_projects/avsar/avsar_androidAPP/.buildozer/android/app/_applibs', "[Errno 13] Permission denied: '/mnt/d/think_dignity_projects/avsar/avsar_androidAPP/.buildozer/android/app/_applibs'")]
设置好后,可以开始了
(1)进入main.py所在文件夹
(2)使用root权限。
su
(3)初始化 Buildozer
buildozer init
这会在目录下生成一个名为buildozer.spec
的文件
(4)打包apk
buildozer -v android debug
如上述,这里第一次的处理过程非常漫长 。开启代理,就是为了这不中断。
参考官方文档:https://buildozer.readthedocs.io/en/latest/quickstart.html
现在是喝咖啡/茶的时候了,如果你的电脑很慢的话,可以吃晚饭了。第一次构建会很慢,因为它将下载编译所需的 Android SDK、NDK 和其他工具。别担心,这些文件将保存在全局目录中,并将在您将使用 Buildozer 管理的不同项目中共享。
7、最后,应该在main.py所在目录下bin/目录中有一个 APK 或 AAB 文件。
用qq发到手机上安装成功:
搞了好久,真麻烦
感谢