在VMware上Ubuntu系统中使用Python和Buildozer构建Kivy APK

以下是在 VMware 虚拟机中安装 Ubuntu,并配置 Python + Kivy + Buildozer 开发环境,最终打包生成 Android APK 的完整步骤:


1. 在 VMware 中安装 Ubuntu

  1. 下载 Ubuntu 镜像
    访问 Ubuntu 官网,下载最新 LTS 版本(如 Ubuntu 22.04 LTS)。

  2. 配置 VMware 虚拟机

  3. 打开 VMware,创建新虚拟机,选择 “自定义” 配置。
  4. 分配至少 4GB 内存20GB 硬盘空间,其他选项保持默认。
  5. 加载下载的 Ubuntu ISO 文件,启动虚拟机。
  6. 安装 Ubuntu

  7. 选择 “Install Ubuntu”,语言建议英文(避免路径编码问题)。
  8. 分区选择默认的 “Erase disk and install Ubuntu”
  9. 设置用户名和密码,完成后重启虚拟机。

2. 安装 Python 与必要工具

  1. 更新系统与安装依赖

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y python3 python3-pip python3-venv git zip unzip openjdk-11-jdk
    
  2. 验证 Python 版本

    python3 --version  # 确保版本 ≥ 3.7
    

3. 安装 Kivy

  1. 安装 Kivy 依赖

    sudo apt install -y libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
    sudo apt install -y pkg-config libgl1-mesa-dev libgles2-mesa-dev
    sudo apt install -y python3-setuptools libmtdev-dev
    
  2. 安装 Kivy

    pip3 install kivy[base]  # 安装基础版(如需完整功能可去掉[base])
    
  3. 验证 Kivy 安装

    python3 -m kivy
    

    若输出 [INFO] Kivy vX.X.X 表示成功。


4. 安装 Buildozer

  1. 安装 Buildozer

    pip3 install buildozer
    
  2. 安装 Buildozer 依赖

    sudo apt install -y autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev
    

5. 创建示例 Kivy 应用

  1. 创建项目目录

    mkdir ~/my_kivy_app && cd ~/my_kivy_app
    
  2. 编写示例代码
    创建文件 main.py,内容如下:

    from kivy.app import App
    from kivy.uix.button import Button
    from kivy.uix.label import Label
    from kivy.uix.boxlayout import BoxLayout
    
    class MyApp(App):
        def build(self):
            layout = BoxLayout(orientation='vertical')
            self.label = Label(text='Hello Kivy!')
            button = Button(text='Click Me!', on_press=self.update_label)
            layout.add_widget(self.label)
            layout.add_widget(button)
            return layout
    
        def update_label(self, instance):
            self.label.text = 'Button Clicked!'
    
    if __name__ == '__main__':
        MyApp().run()
    

6. 使用 Buildozer 打包 APK

  1. 初始化 Buildozer 配置

    buildozer init
    

    生成 buildozer.spec 文件。

  2. 修改 buildozer.spec 文件
    找到以下关键配置项并修改:

    # 应用信息
    title = My Kivy App
    package.name = mykivyapp
    package.domain = org.example
    
    # Android 配置
    requirements = python3, kivy
    android.permissions = INTERNET  # 按需添加权限
    
    # 图标和启动图(可选)
    # icon.filename = %(source.dir)s/data/icon.png
    
  3. 开始构建 APK

    buildozer -v android debug
    
  4. 首次构建需下载 Android SDK/NDK,耗时较长(约 1~2 小时,依赖网络速度)。
  5. 若下载失败,可手动配置镜像源(修改 ~/.buildozer/android/platform/android-sdk/ 中的下载链接)。
  6. 生成 APK 文件
    构建完成后,APK 路径为:

    bin/<appname>-debug.apk
    

7. 测试 APK

  1. 传输 APK 到手机

    adb install bin/mykivyapp-debug.apk  # 需开启手机 USB 调试
    

    或通过 U 盘、云存储等方式安装。

  2. 运行效果
    应用启动后显示按钮和标签,点击按钮更新文本。


常见问题解决

  1. 构建时下载失败

  2. 手动下载 SDK/NDK,放置到 ~/.buildozer/android/platform/ 对应目录。
  3. 使用代理或镜像源(如清华镜像)。
  4. Kivy 依赖缺失
    确保安装所有 Kivy 系统依赖(步骤 3.1)。

  5. APK 启动崩溃

  6. 检查 requirements 是否包含 kivy
  7. buildozer.spec 中启用日志:
    log_level = 2
    

通过以上步骤,你可以在虚拟机中完成从环境搭建到 APK 打包的全流程。如果需要更详细的调试或优化,可以进一步调整 buildozer.spec 配置!

作者:Botiway

物联沃分享整理
物联沃-IOTWORD物联网 » 在VMware上Ubuntu系统中使用Python和Buildozer构建Kivy APK

发表回复