Delphi 10.4.2 FMX安卓应用开启推送权限后启动崩溃如何解决
安卓推送权限开启后应用崩溃的强制配置要求与排查方案
安卓API强制配置要求(开启推送通知权限需满足)
- 必须匹配Firebase注册信息:
google-services.json配置文件的包名、签名SHA1值必须和项目实际配置完全一致,校验不通过会触发Firebase初始化阶段崩溃 - 必须完整声明权限与服务:AndroidManifest.xml需包含
com.google.android.c2dm.permission.RECEIVE、android.permission.POST_NOTIFICATIONS(安卓13及以上)权限,同时注册FirebaseMessagingService相关服务组件,配置缺失会导致服务初始化失败闪退 - 必须保证SDK与依赖版本适配:使用v30 Android SDK编译时,Firebase依赖版本必须适配API 30,版本不兼容会触发类加载异常导致启动崩溃
- 必须保证应用签名一致性:调试、Release打包的签名必须和Firebase控制台登记的签名一致,签名校验不通过会直接触发初始化闪退
问题定位与解决步骤
- 抓取系统级崩溃日志:不依赖Delphi IDE挂载调试,直接通过
adb logcat *:E命令抓取安卓系统全局错误日志,重点筛选AndroidRuntime、FirebaseMessaging、ClassNotFound相关报错,可直接定位崩溃根因 - 校验配置文件部署状态:确认
google-services.json已加入Delphi项目部署列表,部署路径设置为assets\google-services.json,Delphi环境下该配置极易漏添部署规则 - 检查最终Manifest配置:开启推送权限后,校验编译生成的最终AndroidManifest.xml是否包含完整的推送相关权限和服务声明,Delphi 10.4.2存在偶发的权限、服务未自动写入Manifest的问题,可通过添加自定义Manifest片段补全配置
- 适配Firebase依赖版本:Delphi 10.4.2内置支持的Firebase版本为26.x及以下BOM版本,若手动替换过高版本Firebase依赖,降级回官方默认匹配版本即可解决兼容问题
- 安卓13及以上设备适配:若测试设备为安卓13及以上系统,需确认应用已动态申请
POST_NOTIFICATIONS权限,仅在Entitlement List开启权限不会自动完成动态申请,未申请权限会触发部分ROM的强制闪退
内容的提问来源于stack exchange,提问作者T.S
相关产品推荐
相关产品推荐

