将Delphi 10.4安卓应用迁移至11.3时部署报错求助
问题描述
编程经验有限,此前用Delphi 10.4社区版开发了一款安卓小应用,现升级至Delphi 11.3后,调试模式部署时出现以下错误:
[PAClient Error] Error: E2312 Unable to execute '"C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\AndroidSDK-2525-22.0.48361.3236\build-tools\32.0.0\Aapt.exe" package -f -M "C:\Users\Andy\Documents\delphi\Android\Debug\ScrabbleScorer\AndroidManifest.xml" -F "C:\Users\Andy\Documents\delphi\Android\Debug\ScrabbleScorer\bin\ScrabbleScorer-unaligned.apk" -I "C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\AndroidSDK-2525-22.0.48361.3236\platforms\android-32\android.jar" -S "C:\Users\Andy\Documents\delphi\Android\Debug\ScrabbleScorer\res" -A "C:\Users\Andy\Documents\delphi\Android\Debug\ScrabbleScorer\assets" "C:\Users\Andy\Documents\delphi\Android\Debug\ScrabbleScorer\library" "C:\Users\Andy\Documents\delphi\Android\Debug\ScrabbleScorer\classes"' (Error 1)
同时,原本在Delphi 10.4可正常部署的小型项目,在11.3中也无法部署。
解决步骤
检查AAPT工具完整性与权限
找到错误提示中的Aapt.exe路径,右键尝试以管理员身份运行,若提示缺失依赖或无法打开,说明SDK的build-tools组件损坏。打开Delphi的Tools > Options > SDK Manager,卸载当前的Android SDK组件,重新下载对应版本的build-tools(32.0.0),或更换为兼容性更好的低版本(如30.0.3)。排查项目路径与资源文件名
确保项目路径无中文、空格或特殊字符;检查res、assets文件夹内的资源文件名,必须使用小写字母+下划线的命名规则,禁止中文或特殊符号。清理编译缓存并重建项目
删除项目的Debug目录(即错误中的C:\Users\Andy\Documents\delphi\Android\Debug\ScrabbleScorer),在Delphi中点击Project > Clean,之后重新编译部署,避免旧版本缓存与11.3编译工具冲突。校验AndroidManifest.xml配置
对比Delphi 10.4与11.3的Manifest文件,确保uses-sdk标签的minSdkVersion(至少21)和targetSdkVersion(对应SDK-32)符合11.3要求,同时检查权限声明是否存在语法错误或遗漏。确认SDK配置正确性
在SDK Manager中验证Android SDK、NDK、JDK的路径均指向11.3适配的版本,无旧版本路径残留;检查platforms\android-32文件夹是否存在,android.jar文件未损坏。
内容的提问来源于stack exchange,提问作者Andy

