kivy是什么,自己百度,不过多赘言。

使用:

python3.8

Windows10

Ubuntu20.04

目录

1、一个kivy示例

2、win10开启wsl,安装Ubuntu子系统

3、Ubuntu上试运行示例

4、安装buildozer

5、开启代理

6、编译,生成apk

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子系统

参考:win10安装子系统unbuntu18.04及图形界面_家佳哥的博客-CSDN博客win10安装子系统unbuntu18.04及图形界面,纯小白https://blog.csdn.net/qq_40687844/article/details/125270997?spm=1001.2014.3001.5502

但是,因为要用到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

解决办法参考:python - Sdkmanager not installed - Stack Overflowhttps://stackoverflow.com/questions/59330223/sdkmanager-not-installed/63268863#63268863

总之,为了避免连接中断,开启代理还是有必要的。

 wls2设置代理参考 https://www.cnblogs.com/tuilk/p/16287472.html

引用:在Linux命令行中设置并使用代理服务器 - 走看看

(1)首先要在你的代理软件里设置一下

(2 )打开

vi ~/.bashrc

(3)然后在里面插入

export https_proxy=http://你的Windows的ip: 代理软件设置的端口
export http_proxy=http://你的Windows的ip: 代理软件设置的端口

ip就是电脑的vipv4。端口号在自己的代理软件里找,比如r2vayN在界面最下面。

(4)更新

source ~/.bashrc
(5)试试
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'")]

原因可能就在于此,参考:https://github.com/kivy/buildozer/issues/1108#issuecomment-939239618https://github.com/kivy/buildozer/issues/1108#issuecomment-939239618

 设置好后,可以开始了

(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发到手机上安装成功:

搞了好久,真麻烦

感谢

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐