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

Embarcadero Delphi目标平台SDK版本与最终AndroidManifest版本不符原因

为什么Delphi 10.4中目标SDK版本与最终Manifest的API级别不一致?

核心原因:Delphi IDE的API等级绑定机制

Delphi 10.4(悉尼版本)对Android平台的API等级存在强制绑定,它不会直接使用你在目标平台中选择的SDK版本号来填充Manifest的API参数,而是基于IDE自身的预设配置生成最终的Manifest内容。

具体细节拆解

  • IDE预设的API版本:Delphi 10.4原生适配Android API 29(Android 10),其RTL(运行时库)和FMX组件库均基于该API等级开发测试。因此无论你安装的是SDK 25还是其他版本,IDE编译时都会强制将compileSdkVersion、targetSdkVersion等参数设为29,以此保证组件兼容性。
  • 模板占位符的实际取值:Manifest模板里的%minSdkVersion%和%targetSdkVersion%占位符,并非读取你选中的SDK版本,而是读取项目选项 → Android → Application面板中配置的版本值(默认minSdkVersion为23,targetSdkVersion为29),或是IDE全局的Android平台配置预设。
  • SDK版本的实际作用:你安装的SDK 25主要提供编译所需的工具链(如aapt、dx等),而非决定最终Manifest的API等级。Delphi依赖对应SDK中的工具完成编译打包,但API等级逻辑由IDE自身的版本绑定控制。

关于安装Android SDK 31的必要性

Google Play要求新应用适配API 31,因此你必须安装SDK 31,同时需要手动修改Delphi配置:

  1. 安装Android SDK 31及对应Build Tools版本(建议30.0.3及以上)
  2. 打开项目选项,在Android → Application中手动将Minimum SDK Version和Target SDK Version修改为31
  3. 调整AndroidManifest.template.xml,添加API 31要求的权限(如<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>)
  4. 注意:Delphi 10.4对API 31的支持并非原生完美,部分FMX组件可能存在兼容性问题,需针对性测试调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:10:50