You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Delphi生成的Android App Bundle启动崩溃,求调试方案

解决Delphi 10.4.1生成Android App Bundle(.aab)启动崩溃问题

针对你遇到的「单独32/64位APK正常,但.aab包安装后启动仅显示logo就无响应」的问题,你已经定位到了核心原因,这里把关键解决步骤整理清晰,方便其他开发者参考:

问题根源与解决措施

  • 旧版AndroidManifest模板缺失关键内容
    你的androidmanifest.template.xml由旧版Delphi生成,缺少适配App Bundle的必要配置项。建议替换为Delphi 10.4.1官方提供的最新模板文件,同时保留项目自定义的权限、Activity声明等内容,确保.aab的Manifest配置符合Google Play的要求。

  • 未在双架构构建中统一包含.so文件
    App Bundle需要同时打包32位和64位的.so文件,才能在安装时根据设备架构自动拆分。检查项目部署设置:

    1. 打开「Project Options」→「Deployment」
    2. 分别切换到Android 32位和64位平台
    3. 确认所有依赖的.so文件都已添加到对应平台的部署列表,保证它们被打包进.aab。
  • TPath.GetLibraryPath()在.aab环境下路径异常
    在应用初始化阶段使用TPath.GetLibraryPath()加载.so文件时,该路径在.aab包的拆分环境中与传统APK不同,会引发未处理异常导致启动崩溃。解决方法是移除对TPath.GetLibraryPath()的依赖,改用系统默认的库加载逻辑(Delphi会自动处理.so的加载),或者使用TPath.GetDocumentsPath()等稳定路径来定位资源文件。

额外调试建议(供其他遇到类似问题的开发者参考)

如果遇到类似启动崩溃但logcat无有效报错的情况,可以尝试:

  1. 使用adb logcat *:E过滤错误日志,比*:W更容易定位关键异常
  2. 利用Android Studio的「App Bundle Explorer」打开.aab文件,检查拆分后的APK是否包含正确的.so文件和资源
  3. 使用bundletool将.aab转换为可安装的.apks文件,然后通过adb install-multiple部署到测试设备,再结合logcat排查问题

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

火山引擎 最新活动