You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Android平台构建PyQt6应用?部署工具存适配难题

针对PyQt6安卓部署的可行方案

鉴于pyqtdeploy暂不支持Qt6,androiddeployqt仅原生支持qmake/cmake项目,以下是几种实操性强的解决办法:

方案一:PyInstaller + androiddeployqt间接打包

  1. 先用PyInstaller将PyQt6项目打包为独立可执行文件:

    pyinstaller --onefile --windowed your_app.py
    

    确保打包后的可执行文件在本地能正常运行,且包含所有PyQt6依赖。

  2. 创建一个极简CMake项目,将打包后的可执行文件作为资源嵌入:
    编写CMakeLists.txt:

    cmake_minimum_required(VERSION 3.16)
    project(PyQt6Android)
    set(CMAKE_CXX_STANDARD 17)
    
    # 嵌入PyInstaller生成的可执行文件
    add_executable(PyQt6Android main.cpp)
    target_sources(PyQt6Android PRIVATE your_app)
    set_source_files_properties(your_app PROPERTIES HEADER_FILE_ONLY TRUE)
    
    # 配置安卓部署
    set(ANDROID_PACKAGE_NAME "com.yourcompany.yourapp")
    set(ANDROID_ABI "armeabi-v7a")
    find_package(Qt6 REQUIRED COMPONENTS Core Widgets)
    target_link_libraries(PyQt6Android Qt6::Core Qt6::Widgets)
    

    配套的main.cpp只需调用嵌入的可执行文件:

    #include <QProcess>
    #include <QCoreApplication>
    
    int main(int argc, char *argv[]) {
        QCoreApplication app(argc, argv);
        QProcess::startDetached("assets/your_app");
        return app.exec();
    }
    
  3. 用androiddeployqt打包:
    先通过CMake生成安卓构建文件,再执行:

    androiddeployqt --input android-libPyQt6Android.so-deployment-settings.json --output android-build --android-platform android-33 --gradle
    

方案二:适配PyQt6的fbs打包

fbs原本主打PyQt5,但社区已提供适配PyQt6的方法:

  1. 安装fbs并初始化项目:

    pip install fbs
    fbs startproject
    
  2. 修改src/build/settings/base.json,指定Qt6路径和组件:

    {
        "qt_dir": "/path/to/Qt/6.5.0/android_arm64_v8a",
        "qt_modules": ["core", "widgets", "gui"]
    }
    
  3. 替换项目模板中的PyQt5引用为PyQt6,然后执行打包:

    fbs freeze
    fbs installer android
    

    注意:部分fbs插件可能需要手动调整以兼容Qt6,遇到依赖问题可直接修改fbs的源码配置。

方案三:Python for Android(P4A)编译打包

这是最灵活但配置稍复杂的方案,直接从源码编译Python和PyQt6的安卓版本:

  1. 安装P4A并克隆PyQt6的recipe:

    pip install python-for-android
    git clone https://github.com/kivy/python-for-android-recipes.git
    
  2. 构建包含PyQt6的安卓Python环境:

    p4a apk --package=com.yourapp.name --name="YourApp" --version=0.1 --bootstrap=sdl2 --requirements=python3.10,pyqt6 --arch=arm64-v8a --dist_name=yourapp
    

    若遇到Qt6依赖缺失,需手动指定Qt的安卓SDK路径,或修改recipe中的编译参数。

适用场景参考

  • 方案一适合快速验证,对APK体积要求不高的项目;
  • 方案二适合熟悉fbs工作流,希望快速生成标准化APK的用户;
  • 方案三适合需要高度自定义,或对APK体积优化有要求的项目。

内容的提问来源于stack exchange,提问作者Srv19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:15:24