是否需在AndroidManifest声明uses-sdk?Target SDK相关技术疑问
解答你的Android应用Target SDK相关疑问
1. 是否需要在AndroidManifest.xml中指定uses-sdk?
不需要。当前Android Gradle构建系统会自动把build.gradle里配置的minSdkVersion、targetSdkVersion等参数,合并到最终打包生成的AndroidManifest.xml中。源码里的AndroidManifest.xml无需手动添加<uses-sdk>节点,构建过程会自动注入相关配置。
2. Target SDK = 30的设置来源在哪里?
你用到的qtTargetSdkVersion是Qt框架提供的变量,它的取值来源主要有这几个方向:
- Qt Creator项目配置:打开项目的构建设置(项目→构建→Android),查看Target SDK版本的配置项,这里可能直接设置了30。
- gradle.properties文件:检查项目根目录或模块目录下的
gradle.properties,看是否存在qtTargetSdkVersion=30这类定义。 - Qt默认配置:部分Qt版本自带默认Target SDK值,比如Qt 6.2系列的默认Target SDK就是30,若你没手动修改过,就会使用这个默认值。
- Qt Gradle模板:Qt会自动生成Android构建所需的Gradle模板文件,你可以在Qt安装目录的
android相关子目录里找到这些模板,里面可能定义了qtTargetSdkVersion的默认值。
3. Target SDK与sdkBuildToolsRevision有什么区别?
两者是完全不同的概念:
- Target SDK:指应用针对的Android系统API级别(比如30对应Android 11),系统会根据这个版本启用对应的行为规则(比如权限申请逻辑、API兼容限制),直接影响应用的运行时表现。
- sdkBuildToolsRevision:是Android构建工具集的版本(比如你用的33对应Build Tools 33.0.x),这些工具负责编译代码、打包APK、处理资源等构建环节的工作,和应用运行时的行为无关,仅用于保障构建流程正常执行。
4. 适配Android 13时对应的Target SDK版本是多少?
Android 13对应的API级别是33,要适配Android 13的新特性(比如通知权限、媒体权限的变更),需要将targetSdkVersion设置为33。同时Google Play的上架要求也明确,新应用需针对最新Android版本优化,所以适配Android 13时Target SDK至少要设为33。
内容的提问来源于stack exchange,提问作者Alexey Starinsky
相关产品推荐
相关产品推荐

