用Python框架BeeWare 开发安卓app pixel&gradle

用Python框架BeeWare 开发安卓app:
提示:运行Python 3.7或更高版本

例如:

[** ] 作者使用的Pycharm编译器
Pycharm安装与使用教程已过滤 ~ ~ ~
搭建BeeWare教程:
BeeWare 是一个基于 Python 构建的跨平台应用开发框架,能够让 Python 编写的图形程序在 iOS, Android, Windows, MacOS, Linux, Web, 和 tvOS 上运行,看起来是个非常强大的最新GUI库!

安装:

打开Pycharm 编辑器,运行终端安装pip install briefcase
创建应用
BeeWare 安装完成之后,我们就可以通过 briefcase 命令在命令行终端进行 BeeWare 应用的管理,比如新建、运行、构建、打包等等。

命令输入之后,会让我们输入「应用的正式名称」、「应用程序名称」、「域名」、「项目名称」等等信息,在这里出于演示,我们统统使用默认值。

我们先使用命令 briefcase new 创建一个应用。


输入完成之后,BeeWare会开始创建应用,创建完成之后,会有如下提示:

同时目录下多出了一个与应用程序名称同名的目录:


接下来我们打开 HelloWorld目录下的src/helloworld/app.py,之后代码就是从这里编写,然后主窗口是__main__.py

接下来这里,因为我是直接打包了Python的一些第三方库:requests 、BeautifulSoup,所以需要做一个配置修改,找到Helloworld目录下的 pyproject.toml 这个文件,然后找到第15行的requires参数添加你需要的第三方库,比如:


再然后,还需要添加第52行的requires列表:


3.运行项目:
briefcase dev

这里我默认修改了app.py几行代码

"""
My first application
"""
import toga
import requests
from bs4 import BeautifulSoup
from toga.style import Pack
from toga.style.pack import COLUMN, ROW


class HelloWorld(toga.App):

    def __init__(
            self,
            formal_name=None,
            app_id=None,
            app_name=None,
            id=None,
            icon=None,
            author=None,
            version=None,
            home_page=None,
            description=None,
            startup=None,
            windows=None,
            on_exit=None,
            factory=None,
    ):
        super().__init__(formal_name, app_id, app_name, id, icon, author, version, home_page, description, startup,
                         windows, on_exit, factory)
        self.headers = None
        self.title_name = None
        self.main_box = None

    def startup(self):
        """
        Construct and show the Toga application.

        Usually, you would add your application to a main content box.
        We then create a main window (with a name matching the app), and
        show the main window.
        """
        self.main_box = toga.Box(style=Pack(direction=COLUMN))

        button = toga.Button(
            'GET',
            on_press=self.get_pyauto,  # 按钮要调用的函数
            style=Pack(padding=5)
        )

        self.main_box.add(button)

        self.main_window = toga.MainWindow(title=self.formal_name)
        self.main_window.content = self.main_box
        self.main_window.show()

    def get_pyauto(self, widget):
        self.headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                          "Chrome/102.0.5005.124 Safari/537.36 Edg/102.0.1245.41 "
        }
        req = requests.get('https://www.baidu.com/', headers=self.headers)
        if req.status_code == 200:
            req.encoding = "utf-8"
            soup = BeautifulSoup(req.text, "html.parser")
            self.title_name = soup.title.text
        label = toga.Label(
            self.title_name,
            style=Pack(padding=(0, 5))
        )
        self.main_box.add(label)


def main():
    return HelloWorld()

这里的__main__.py代码不变,主程序入口!

4. 打包为安卓APP
(1)首先,创建应用的安卓脚手架:briefcase create android

输入y,创建安卓平台环境。
(2)接着我们编译程序,构建安卓应用:briefcase build android

!在这里我需要补充一下:运行briefcase build android后报错:

gradle版本(环境)

gradle环境安装路径:
https://services.gradle.org/distributions/

在运行briefcase build android的时候会在下载gradle-8.0-all.zip的时候报错,可以在网站上先下载(不用解压)。到pycharm找到gradle-wrapper.properties文件I:\PycharmProjects\pythonProject\duihua\build\duihua\android\gradle\gradle\wrapper\gradle-wrapper.properties

点进去修改distributionUrl=(网站上下载下来的zip,不用解压)大致格式:

distributionUrl=file:///I:/PycharmProjects/pythonProject/duihua/build/duihua/android/gradle/gradle-8.0-all.zip

原文链接:【gradle】gradle版本和gradle插件版本-CSDN博客

(3)编译完成之后,运行模拟器。这里我电脑配置原因,没有安装模拟器而是直接打包apk文件,在这里会让我们选择设备,可以选择 BeeWare 提供的安卓虚拟机或者是在电脑上连接自己的手机,我们选择安卓虚拟机:briefcase run android

注:这里的话,我的Python版本是3.9,建议安装3.7或者3.8

!在这里我需要补充一下:已经使用python3.8还是报错,提示说Unable to download pixel_3a device skin; is your computer offline?,好像有人说是因为显卡还是啥东西有点低,或者可能因为我使用的是pycharm软件,所以需要网上找到pixel_3a安装包

错误日志里提到http://android.googlesource.com/

可惜我打不开也可能就因为这个原因所以下载不了

(4)最后,打包安卓应用:briefcase package android

打包完成之后,会默认生成一个apk文件,那个文件就是我们打包好的安卓app文件,在目录下:D:\AutoProject\helloworld\android\gradle\Hello World\app\build\outputs\apk\debug\app-debug.apk

最后,我们打开写好的app文件:

以上是原文和我按照步骤进行时遇到的的错误和解决办法

原文链接:https://blog.csdn.net/qq_45787306/article/details/125349461

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值