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

升级Delphi至10.2.3后TBannerAd调用LoadAd触发JNI异常求助

排查Delphi 10.2.3升级后TBannerAd的Manifest异常问题

这种升级后突然出现的JNI异常,十有八九是Delphi版本迭代时,自动生成AndroidManifest的逻辑或者组件配置规则变了——哪怕你没碰代码,IDE也可能悄悄修改了底层的配置生成逻辑。我给你梳理几个靠谱的排查方向:

1. 检查自动生成的AndroidManifest.xml内容

Delphi会根据项目里的组件配置自动生成最终的AndroidManifest.xml,升级10.2.3后,TBannerAd对应的AdMob配置可能没被正确注入:

  • 打开项目选项→Deployment,找到AndroidManifest.xml(一般在\Android\Release或\Android\Debug目录下)
  • 查看文件里是否存在这个meta-data标签:
    <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="你的AdMob APP_ID"/>
    
    如果缺失或者值不对,那就是问题根源了。

2. 核对TBannerAd组件的属性配置

确认组件的ApplicationID属性是否正确填写了你的AdMob应用ID:

  • 有时候版本升级后,组件属性和Manifest的绑定逻辑会出问题,比如属性值没同步到自动生成的Manifest里。可以先清空ApplicationID,保存项目,再重新填写,然后编译,再回头检查Manifest是否生成了对应的meta-data。

3. 手动在Manifest模板里添加配置

如果IDE自动生成的Manifest始终漏了这个标签,直接修改项目根目录的AndroidManifest.template.xml:

  • 在<application>标签内部添加这段代码:
    <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="你的AdMob APP_ID"/>
    
  • 保存后重新编译项目,让IDE基于模板生成最终的Manifest,这样就能强制把配置加进去。

4. 检查Google Play Services的配置状态

Delphi 10.2.3可能升级了内置的Google Play Services库版本,导致相关配置项要求变了:

  • 打开项目选项→Services→Google Play Services,确认Ads相关的服务是否勾选,并且版本选择是否正确。有时候升级后这些勾选状态会被重置,需要重新确认。

5. 清理缓存后重新编译

旧的编译缓存很可能拖后腿,尤其是跨版本升级后:

  • 关闭Delphi IDE,删除项目目录下的\Android、\Build等缓存目录
  • 重新打开IDE,执行Clean Project后再编译,让IDE完全重新生成所有配置文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:38:17