【问题标题】:Google AdMob TBannerAd LoadAd exception after upgrading to Delphi v10.2.3升级到 Delphi v10.2.3 后 Google AdMob TbannerAd LoadAd 异常
【发布时间】:2018-04-26 08:51:39
【问题描述】:

我的应用程序最初是使用 Delphi v10.2.2 编写的,TBannerAd 运行良好。

没有任何代码更改并且在将 Delphi 升级到 v10.2.3 后(通过使用 ISO 在现有 v10.2.2 上安装而不更改安装对话框中的任何内容),调用 TBannerAd 的“LoadAd”方法开始触发此异常:

Project myproject.apk 引发异常类 EJNIException 并显示消息 'java.lang.IllegalStateException:应用程序中的元数据标记 AndroidManifest.xml 没有正确的值。预计4323000 但找到 7095000。你必须在 元素:'。

我查看了 AndroidManifest.xml 文件,确实使用了“7095000”值,但我不知道 delphi 为什么/如何使用这个值。重建项目会生成一个带有“7095000”值的新 AndroidManifest.xml 文件,因此我无法直接编辑 XML 文件作为解决方法。

这是什么原因造成的?是否因为升级而改变了某些设置或 SDK 路径? (我尝试搜索但找不到任何相关内容)

我尝试过的事情:

  • 完全卸载应用程序并从 Delphi(在真实设备上,Galaxy note 4 上)再次运行它。
  • 在选项下,将 NDK API 位置和 C++ Builder NSK 库路径从“\platforms\android-14”更改为“\platforms\android-19”。

【问题讨论】:

    标签: android delphi admob firemonkey


    【解决方案1】:

    Tokyo 10.2.3 更新了 Google Play 服务及其库。

    使用旧版本创建的应用程序不会自动将库更新为 10.2.3 版本附带的新库。

    要更新库,请转到项目管理器 -> Android -> Android SDK xxx -> 库,然后从弹出菜单中选择“将系统文件恢复为默认值”。

    还原后包含的库列表应该是

    【讨论】:

    • 不幸的是,这样做引发了另一个问题,需要我打开另一个问题:stackoverflow.com/questions/50042552/…
    • 请检查添加的图像和恢复的库列表。您的项目中似乎有额外的 google-play-services 库。尝试禁用那个。
    • 你说得对,我发现了一个额外的“google-play-services.dex.jar”,禁用它可以解决问题。有趣的是“将系统文件恢复为默认值”留下了这个条目。
    • 这可能是您项目的特定内容。它适用于我的项目,但我不记得它们最初是使用哪个 Delphi 版本创建的。
    猜你喜欢
    • 1970-01-01
    • 2012-11-23
    • 2016-04-30
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    相关资源
    最近更新 更多