Xamarin Forms Android集成Google Ads编译报错APT1000求助
错误成因
该系列APT1000报错核心为AndroidX组件版本冲突:你安装的广告SDK依赖的AndroidX包版本,与项目内原有其他AndroidX组件版本不匹配,不同版本的AndroidX资源文件重叠,就会触发属性重复定义、标签格式错误类报错。由于MarcTron.AdMob和Xamarin.Firebase.Ads都依赖同系列AndroidX组件,因此版本冲突问题未解决前,替换广告包也会复现报错。
解决步骤
- 完全清理缓存:关闭Visual Studio,手动删除项目根目录下的
bin、obj文件夹,再删除系统用户目录下.nuget/packages路径内所有Xamarin.AndroidX、Xamarin.Google前缀的包缓存,排除旧版本缓存干扰 - 统一AndroidX包版本:打开NuGet包管理器,将项目内所有AndroidX相关包(含
Xamarin.AndroidX.Browser、Xamarin.Google.Android.Material、Xamarin.AndroidX.Lifecycle.LiveData、Xamarin.AndroidX.Legacy.Support.V4)全部升级到同一最新稳定版,禁止混合使用不同版本的AndroidX组件,也不要使用预览版 - 升级编译配置:将目标Android框架版本设置为API 33(Android 13)及以上,你之前使用的API 28、29版本过低,本身就和新版AndroidX、广告SDK不兼容;同时检查
AndroidManifest.xml和项目内values目录下的资源文件,确认没有重复定义translationX/Y/Z属性,也没有直接把id标签写在values.xml根节点下 - 重新安装广告包:先完全卸载项目内所有AdMob、Firebase Ads相关包,重启Visual Studio后再安装
Xamarin.Firebase.Ads最新稳定版,安装时不要手动修改依赖版本,让NuGet自动匹配兼容的依赖版本 - 兜底方案:如果上述操作都无效,可以新建空白Xamarin.Android项目,先安装
Xamarin.Firebase.Ads确认可正常编译后,再逐步迁移原有业务代码,排除旧项目残留历史配置的影响
内容的提问来源于stack exchange,提问作者techie
相关产品推荐
相关产品推荐

