如何让Qt Creator 10.0.2使用修改后的AndroidManifest.xml文件?
解决Qt CMake项目中AndroidManifest.xml修改后被覆盖的问题
核心原因
build目录下的AndroidManifest.xml是CMake构建过程中自动生成的临时文件,直接修改会被每次构建覆盖,必须通过配置让CMake使用源码目录下的自定义manifest文件。
解决方案步骤
1. 手动创建自定义AndroidManifest.xml
- 在项目根目录(与
CMakeLists.txt同级)新建android文件夹 - 从build目录中复制自动生成的
AndroidManifest.xml到这个android文件夹 - 修改复制后的文件,找到
<activity>标签,将android:screenOrientation属性改为landscape,示例:<activity android:name="org.qtproject.qt.android.bindings.QtActivity" android:label="@string/app_name" android:screenOrientation="landscape" ...>
2. 修改CMakeLists.txt配置
打开项目根目录的CMakeLists.txt,在qt_add_executable指令之后添加以下配置,让CMake识别自定义的Android资源目录:
# 指定Android自定义资源目录 set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android)
确保该配置位于qt_add_executable和install等核心指令之间。
3. 验证配置
- 清理旧构建文件:点击Qt Creator菜单
Build->Clean All - 重新构建项目,此时build目录下的
AndroidManifest.xml会自动从自定义文件复制,不会再被覆盖 - 运行到Android设备/模拟器,应用将默认以横屏启动
替代方案(解决Create Templates报错问题)
如果点击Qt Creator的Create Templates按钮报错,无需依赖该功能,直接按上述步骤手动创建android文件夹和配置CMake即可,效果完全一致。
注意事项
- 所有Android相关的自定义配置(权限、图标、启动模式等),都直接在源码目录的
android文件夹下修改,不要触碰build目录的自动生成文件 - 若后续Qt版本更新,可重新从build目录复制最新的manifest到
android文件夹,再修改横屏配置
内容的提问来源于stack exchange,提问作者user351579
相关产品推荐
相关产品推荐

