提问者:小点点

德尔福 v10.2.2 到 v10.2.3 升级后 Android 库“将系统文件恢复为默认值”


将Delphi从v10.2.2升级到v10.2.3后,TBannerAd banner在尝试调用LoadAd方法时引发异常。

在了解“东京10.2.3更新了谷歌游戏服务及其库”(升级到德尔福v10.2.3后的谷歌AdMob TBannerAdLoadAD异常)后,我通过右键单击项目管理器中的Android库节点,尝试了建议的“将系统文件恢复到默认值”修复程序。

但是,这样做会破坏编译,返回以下错误:

[Exec Error] The command "PATH {my entire path} & "C:\Users\MyUser\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows\build-tools\27.0.2\dx.bat" --dex --output="Z:\Tic\Android\Debug\classes.dex" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\android-support-v4.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\cloud-messaging.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\fmx.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-analytics-v2.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-billing.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-licensing.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-services-ads-7.0.0.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-services-analytics-7.0.0.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-services-base-7.0.0.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-services-identity-7.0.0.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-services-maps-7.0.0.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-services-panorama-7.0.0.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-services-plus-7.0.0.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-services-wallet-7.0.0.dex.jar" "c:\program files (x86)\embarcadero\studio\19.0\lib\Android\Debug\google-play-services.dex.jar" " exited with code 2.

我手动输入了命令,这是完整的错误消息:

意外的顶级异常: com.android.dex.DexException: 多个 dex 文件定义 Lcom/google/ads/AdRequest$ErrorCode; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger



.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:198) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:506) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:336) at com.android.dx.command.dexer.Main.runDx(Main.java:291) at com.android.dx.command.dexer.Main.main(Main



.java:247)
at com.android.dx.command.Main.main(Main.java:94)

项目管理器下面列出的Android SDK是v24.3.3 32bit。

我是不是错过了在Android端更新什么东西?


共1个答案

匿名用户

我在解决这个问题的原始线程上得到了一个答案,似乎使用“将系统文件还原为默认值”选项仍然保留了旧的“googleplayservices.dex.jar”服务。

为了解决这个问题,我右键单击该条目并选择“禁用”,关闭 Delphi,在文本编辑器中打开项目的“.dproj”文件,搜索“DisabledSysJars”并删除有问题的条目。