admin管理员组

文章数量:1130349

WSL完整环境包自取:10多个G大小要下载,所以觉得下载太大的跟着本教程一步步来也是可以的python程序打包成安卓可执行文件apk教程以及错误总结(附完整WSL环境)(下)(WSL环境分享使用篇)-CSDN博客

搭建WSL环境,代理使用教程(自备代理):

python程序打包成安卓可执行文件apk教程以及错误总结(附完整WSL环境)(中)(错误解决以及wsl代理篇)-CSDN博客

前言:分享一下曲折历程,顺便记录一下各种问题的解决方法,为后来者把自己写好的python程序打包成APK提供解决方案。

【Python应用打包安卓的曲折历程】

1. 项目启动 

周一受启发决定开发函数绘图工具,基于Python matplotlib构建核心功能,初步选用tkinter嵌入matplotlib来完成桌面端界面开发(400+行代码)。

2. 初遇打包困境 

• Buildozer打包apk遭遇依赖库安装失败 

• 转战Beeware生成apk但闪退,发现可能是tkinter不兼容移动端 

• 接着尝试PySide/PyQt重构界面,新问题层出不穷,依旧对安卓客户端兼容性不好

3. 迂回策略 

• 用PyInstaller快速打包Windows版exe(成功跨设备运行)效果还不错,挺喜欢这个界面的 

• 尝试exe转apk工具未果,包括在线转换与专业软件 

4. 系统级攻坚 

偶然间在B站评论区听说kivy兼容不错,尝试buildozer+kivy的组合:

看了许多博客发现之前buildozer装不上很大库是系统版本问题,似乎Ubuntu22.04能行,所以就尝试了。

• 搭建Ubuntu22.04虚拟机(WSL2下)环境解决编译依赖 

• 突破性进展:通过WSL配置代理,解决网络问题 ,为后续下载各种依赖和工具包铺垫

• 最终采用Kivy重构界面(将近700行)+Ubuntu22.04(WSL)+Buildozer成功生成apk

5. 成果与遗憾 

• 安卓端实现基础界面交互,以及基本的函数绘制,进制转换功能,以及计算器(启动/点击) 

• 绘图功能因终端输出限制未能移植 matlab那样好用的绘图

• 累计涉及6种框架/工具,攻克3类系统环境问题 

这段旅程虽以不完美的apk告终,却意外玩转了跨平台开发的环境配置链路。每一次报错都是对系统理解的加深,其实写下这个的时候,我已经再新的环境重新安装过一次了,所有的过程都跑过一遍了,从起初的近一个周,到再一次的几个小时,都是建立在无数的报错信息上的,数次让人崩溃的时候记忆犹新。(注:经历真实度100%,崩溃程度请自行脑补×3)

爆红掠影(经历过很多次这个了,已经无感了,这个只是因为jdk版本,从11换到17就好了):



完整教程开启:

一、准备工作:

1.WSL下的Ubuntu22.04,也可以是VMware虚拟机下的只要是22.04即可

2.代理,很多包下载会出错,超时啥的,最好代理,万一没有代理认真阅读,会给你解决办法的。

3.安装conda用于python环境管理,主要是和Linux的python区分开

4.坚强的心

二、开始构建:

如果以上你都具备了,那么你将事半功倍,不会再踩坑了

1.创建conda虚拟环境并激活,创建一个文件夹用于存放项目文件,

conda create -n kivy python=3.9
激活环境
conda activate kivy

mkdir apk

cd apk

2.安装必要的依赖并创建一个bin文件用于存放后续生成的apk文件

这里注意!!有的用的jdk11,但是我用这个版本报错,用jdk17则不会,爆红信息见开头图片

pip install buildozer

更新软件源,下载相关所有依赖

sudo apt update
sudo apt install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev 
pip3 install --user --upgrade Cython==0.29.33 virtualenv 

创建文件夹用于存放apk
export PATH=$PATH:~/.local/bin/

3.放置好你的python文件,并且改名为main.py

创建配置文件,配置相关信息,执行一下命令,会在apk下生成一个buildozer.spec文件,python文件和这个文件在同一级文件目录下

buildozer init

4.修改配置文件

必须做的:

设置图标(可选):注意使用ico格式的图片不会报错,尺寸上我用的是192*192的!!!

剩下的安卓版本根据自己需求来,我没有更改就用的默认的。

三、正式开始,建议打开手机刷视频或者泡杯咖啡

下面就是构建的命令了,祝你只用输入一次,因为我输入了很多次算上调试界面,上百次了吧!!!

开始构建
buildozer -v android debug

这个过程会非常缓慢,下载各种依赖,以及打包编译你前面写的requirements,下载过程还取决于你的网速以及你代理的速度,大概有这么多要下载的。

下载其实算快的对于我来说,构建编译过程才是真的慢,不过看着文件一个个快速编译,一个报错都没有,还是很有成就感的,欣赏一下其中一个截图吧

如果出现下面这个界面恭喜你成功了,在你的apk项目目录下的bin中取你的.apk文件吧

WSL完整环境包自取:10多个G大小要下载,所以觉得下载太大的跟着本教程一步步来也是可以的python程序打包成安卓可执行文件apk教程以及错误总结(附完整WSL环境)(下)(WSL环境分享使用篇)-CSDN博客

搭建WSL环境,代理使用教程(自备代理):

python程序打包成安卓可执行文件apk教程以及错误总结(附完整WSL环境)(中)(错误解决以及wsl代理篇)-CSDN博客

前言:分享一下曲折历程,顺便记录一下各种问题的解决方法,为后来者把自己写好的python程序打包成APK提供解决方案。

【Python应用打包安卓的曲折历程】

1. 项目启动 

周一受启发决定开发函数绘图工具,基于Python matplotlib构建核心功能,初步选用tkinter嵌入matplotlib来完成桌面端界面开发(400+行代码)。

2. 初遇打包困境 

• Buildozer打包apk遭遇依赖库安装失败 

• 转战Beeware生成apk但闪退,发现可能是tkinter不兼容移动端 

• 接着尝试PySide/PyQt重构界面,新问题层出不穷,依旧对安卓客户端兼容性不好

3. 迂回策略 

• 用PyInstaller快速打包Windows版exe(成功跨设备运行)效果还不错,挺喜欢这个界面的 

• 尝试exe转apk工具未果,包括在线转换与专业软件 

4. 系统级攻坚 

偶然间在B站评论区听说kivy兼容不错,尝试buildozer+kivy的组合:

看了许多博客发现之前buildozer装不上很大库是系统版本问题,似乎Ubuntu22.04能行,所以就尝试了。

• 搭建Ubuntu22.04虚拟机(WSL2下)环境解决编译依赖 

• 突破性进展:通过WSL配置代理,解决网络问题 ,为后续下载各种依赖和工具包铺垫

• 最终采用Kivy重构界面(将近700行)+Ubuntu22.04(WSL)+Buildozer成功生成apk

5. 成果与遗憾 

• 安卓端实现基础界面交互,以及基本的函数绘制,进制转换功能,以及计算器(启动/点击) 

• 绘图功能因终端输出限制未能移植 matlab那样好用的绘图

• 累计涉及6种框架/工具,攻克3类系统环境问题 

这段旅程虽以不完美的apk告终,却意外玩转了跨平台开发的环境配置链路。每一次报错都是对系统理解的加深,其实写下这个的时候,我已经再新的环境重新安装过一次了,所有的过程都跑过一遍了,从起初的近一个周,到再一次的几个小时,都是建立在无数的报错信息上的,数次让人崩溃的时候记忆犹新。(注:经历真实度100%,崩溃程度请自行脑补×3)

爆红掠影(经历过很多次这个了,已经无感了,这个只是因为jdk版本,从11换到17就好了):



完整教程开启:

一、准备工作:

1.WSL下的Ubuntu22.04,也可以是VMware虚拟机下的只要是22.04即可

2.代理,很多包下载会出错,超时啥的,最好代理,万一没有代理认真阅读,会给你解决办法的。

3.安装conda用于python环境管理,主要是和Linux的python区分开

4.坚强的心

二、开始构建:

如果以上你都具备了,那么你将事半功倍,不会再踩坑了

1.创建conda虚拟环境并激活,创建一个文件夹用于存放项目文件,

conda create -n kivy python=3.9
激活环境
conda activate kivy

mkdir apk

cd apk

2.安装必要的依赖并创建一个bin文件用于存放后续生成的apk文件

这里注意!!有的用的jdk11,但是我用这个版本报错,用jdk17则不会,爆红信息见开头图片

pip install buildozer

更新软件源,下载相关所有依赖

sudo apt update
sudo apt install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev 
pip3 install --user --upgrade Cython==0.29.33 virtualenv 

创建文件夹用于存放apk
export PATH=$PATH:~/.local/bin/

3.放置好你的python文件,并且改名为main.py

创建配置文件,配置相关信息,执行一下命令,会在apk下生成一个buildozer.spec文件,python文件和这个文件在同一级文件目录下

buildozer init

4.修改配置文件

必须做的:

设置图标(可选):注意使用ico格式的图片不会报错,尺寸上我用的是192*192的!!!

剩下的安卓版本根据自己需求来,我没有更改就用的默认的。

三、正式开始,建议打开手机刷视频或者泡杯咖啡

下面就是构建的命令了,祝你只用输入一次,因为我输入了很多次算上调试界面,上百次了吧!!!

开始构建
buildozer -v android debug

这个过程会非常缓慢,下载各种依赖,以及打包编译你前面写的requirements,下载过程还取决于你的网速以及你代理的速度,大概有这么多要下载的。

下载其实算快的对于我来说,构建编译过程才是真的慢,不过看着文件一个个快速编译,一个报错都没有,还是很有成就感的,欣赏一下其中一个截图吧

如果出现下面这个界面恭喜你成功了,在你的apk项目目录下的bin中取你的.apk文件吧

本文标签: 成安执行文件错误完整环境