1. Qt for Android开发环境搭建概述在Windows10系统上配置Qt 5.14.2的Android开发环境并生成APK文件是许多C/Qt开发者需要掌握的基础技能。这个过程看似简单但实际操作中会遇到各种环境配置问题。我最近为一个企业项目搭建这套环境时就踩了不少坑现在把完整流程和解决方案整理出来。Qt Creator虽然提供了Android开发环境自动配置功能但在国内网络环境下自动下载安装经常失败。更可靠的方式是手动准备所有组件然后进行集成。整个过程主要涉及以下几个关键组件JDKJava开发工具包Android SDK软件开发工具包Android NDK本地开发工具包Qt 5.14.2的Android版本2. 环境准备与组件安装2.1 JDK安装与配置Android开发需要64位JDK 8这是Qt 5.14.2官方推荐的版本。我测试过JDK 11和17虽然也能工作但在构建时会出现一些兼容性问题。安装步骤从Oracle官网下载jdk-8u381-windows-x64.exe安装到C:\Java\jdk1.8.0_381避免使用带空格的路径设置系统环境变量JAVA_HOMEC:\Java\jdk1.8.0_381在Path中添加%JAVA_HOME%\bin验证安装java -version javac -version应该显示1.8.x版本信息。如果显示更高版本需要检查系统PATH中是否包含其他Java安装路径。2.2 Android SDK安装Android SDK不建议通过Qt Creator自动安装因为国内访问Google服务器不稳定。推荐以下手动安装方法下载命令行工具包commandlinetools-win-9477386_latest.zip解压到C:\Android\cmdline-tools\latest注意目录结构设置环境变量ANDROID_HOMEC:\Android通过命令行安装必要组件sdkmanager platform-tools platforms;android-29 build-tools;29.0.3 sdkmanager ndk;21.3.6528147 --channel3这里选择Android API 29Android 10和NDK 21.3这是Qt 5.14.2官方测试兼容的版本。2.3 Android NDK特别配置Qt 5.14.2对NDK版本有严格要求必须使用21.x版本。新版本NDK会导致编译错误。配置要点确认NDK路径为C:\Android\ndk\21.3.6528147设置环境变量ANDROID_NDK_HOME指向该路径在Qt Creator中配置时需要手动指定这个NDK路径注意NDK 22移除了对GCC的支持而Qt 5.x仍然依赖GCC工具链这就是必须使用NDK 21的原因。2.4 Qt 5.14.2安装选项安装Qt 5.14.2时必须勾选以下组件Qt 5.14.2 → Android ARMv7Qt 5.14.2 → Android x86用于模拟器开发Qt Charts如果需要图表功能Qt Quick Controls 2安装完成后检查Qt安装目录下的android_armv7子目录确保有对应的Qt库文件。3. Qt Creator环境配置3.1 配置Android开发套件打开Qt Creator → 工具 → 选项 → 设备 → Android填写各组件路径JDK位置C:\Java\jdk1.8.0_381Android SDK位置C:\AndroidAndroid NDK位置C:\Android\ndk\21.3.6528147点击应用保存设置3.2 创建Android编译套件进入工具 → 选项 → 构建和运行 → 套件(Kit)添加新套件配置如下设备类型Android设备编译器Android Clang如果使用Qt 5.14.2Qt版本选择安装的Qt 5.14.2 Android版本Android NDK选择21.3.6528147设置ABI为armeabi-v7a3.3 解决常见配置问题问题1Qt Creator找不到Android SDK工具解决方案手动编辑C:\Users[用户名]\AppData\Local\QtProject\qtcreator\android\sdk_definitions.json添加正确的工具路径。问题2构建时出现Unable to detect JDK location解决方案确认JAVA_HOME环境变量设置正确并且在Qt Creator中指定的JDK路径不包含中文或空格。问题3Android SDK License未接受解决方案运行以下命令接受所有许可sdkmanager --licenses4. 构建Android APK实战4.1 创建Android项目新建Qt Widgets Application或Qt Quick Application项目在项目配置中勾选创建Android清单文件在.pro文件中添加Android特定配置android { DISTFILES android/AndroidManifest.xml ANDROID_PACKAGE_SOURCE_DIR $$PWD/android }4.2 配置AndroidManifest.xml在android目录下编辑AndroidManifest.xml关键配置项uses-sdk android:minSdkVersion21 android:targetSdkVersion29/ uses-permission android:nameandroid.permission.INTERNET/ application android:nameorg.qtproject.qt5.android.bindings.QtApplication android:labelstring/app_name android:icondrawable/icon /application4.3 构建和部署在Qt Creator左下角选择Android编译套件点击构建按钮或CtrlB构建完成后点击运行按钮或CtrlR如果连接了Android设备应用会自动安装并运行。也可以在构建目录下的android-build\build\outputs\apk\debug中找到生成的APK文件。4.4 生成发布版APK在项目 → 构建设置中选择Release构建模式编辑android/gradle.properties文件android.enableAapt2true android.useAndroidXtrue使用jarsigner对APK签名jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore android-build-release-unsigned.apk alias_name使用zipalign优化APKzipalign -v 4 android-build-release-unsigned.apk MyApp.apk5. 常见问题与解决方案5.1 中文显示乱码问题Qt Android应用中文乱码通常是因为字体配置问题。解决方法在main.cpp中添加#include QAndroidJniEnvironment #include QAndroidJniObject QAndroidJniObject::callStaticMethodvoid( org/qtproject/qt5/android/QtNative, setFont, (Landroid/content/Context;Ljava/lang/String;)V, QtAndroid::androidActivity().object(), QAndroidJniObject::fromString(DroidSansFallback.ttf).object());在项目目录下创建android/res/font目录放入中文字体文件5.2 应用启动崩溃问题如果应用启动时崩溃并显示This application failed to start because no Qt platform plugin could be initialized需要确认构建时选择了正确的ABIarmeabi-v7a检查APK中是否包含libqtforandroid.so文件在AndroidManifest.xml中添加meta-data android:nameandroid.app.lib_name android:valueqtforandroid/5.3 性能优化建议在pro文件中添加优化标志android { QMAKE_CFLAGS_RELEASE -O2 QMAKE_CXXFLAGS_RELEASE -O2 }减少Qt Quick控件数量避免复杂嵌套使用Texture代替Image显示大量小图标5.4 兼容性处理对于不同Android设备需要注意在AndroidManifest.xml中声明支持的屏幕尺寸supports-screens android:smallScreenstrue android:normalScreenstrue android:largeScreenstrue android:xlargeScreenstrue/为不同DPI提供多套资源文件android/res/drawable-ldpi/ android/res/drawable-mdpi/ android/res/drawable-hdpi/经过以上步骤你应该能够在Windows10上成功搭建Qt 5.14.2的Android开发环境并生成可在各种Android设备上运行的APK文件。我在实际项目中发现保持JDK 8、NDK 21和Android SDK 29这个组合最为稳定新版本虽然功能更多但与Qt 5.14.2的兼容性往往存在问题。如果遇到构建问题建议首先检查各组件的版本匹配情况。