play-services-ads:24.0.0 xml/gma_ad_services_config 资源找不到问题
问题描述
在将 Google 移动广告 SDK 从 play-services-ads:23.6.0
升级到 play-services-ads:24.0.0
后,编译时出现以下错误:
bash
AAPT: error: resource xml/gma_ad_services_config (akacom.test.test:xml/gma_ad_services_config) not found.
这个错误表明 Android Asset Packaging Tool (AAPT) 无法找到之前版本中必需的 XML 配置文件。
问题原因
在 play-services-ads:24.0.0
版本中,Google 做出了重要变更:
SDK 版本变化
从 24.0.0 版本开始,SDK 的清单文件中移除了 android.adservices.AD_SERVICES_CONFIG
属性标签。这一变更为需要自定义广告服务配置的开发者提供了更大的灵活性,并防止了合并冲突。
这意味着:
- 新版本不再需要手动配置 Ad Services 配置文件
- 相关的 Manifest 配置项已被移除
- 继续保留旧配置会导致资源找不到的错误
解决方案
方法一:移除 Manifest 中的配置(推荐)
从您的 AndroidManifest.xml
文件中移除或注释掉以下配置:
xml
<!-- 移除或注释掉以下配置 -->
<!--
<property
android:name="android.adservices.AD_SERVICES_CONFIG"
android:resource="@xml/gma_ad_services_config"
tools:replace="android:resource" />
-->
然后同步项目并重新构建。
方法二:完整升级步骤
按照以下步骤完成升级:
更新 build.gradle 依赖:
gradledependencies { implementation 'com.google.android.gms:play-services-ads:24.0.0' }
清理项目:
bash./gradlew clean
重新构建项目:
bash./gradlew build
注意事项
- 确保您的项目中没有其他地方引用了
xml/gma_ad_services_config
资源文件 - 如果您之前创建了自定义的
gma_ad_services_config.xml
文件,现在可以安全地删除它 - 检查所有模块的 Manifest 文件,确保没有残留的 AD_SERVICES_CONFIG 配置
验证解决方案
升级完成后,您可以通过以下方式验证:
- 项目能够正常编译,不再出现资源找不到的错误
- 广告功能正常工作,没有运行时错误
- 检查构建日志,确认没有相关警告
附加信息
此变更是 Google 移动广告 SDK 24.0.0 版本的一部分,旨在简化配置并减少合并冲突。更多详情请参考 Google 移动广告开发者博客。
如果您遇到其他相关问题,建议查看官方文档或检查是否有其他过时的配置需要更新。