Skip to content

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" />
-->

然后同步项目并重新构建。

方法二:完整升级步骤

按照以下步骤完成升级:

  1. 更新 build.gradle 依赖

    gradle
    dependencies {
        implementation 'com.google.android.gms:play-services-ads:24.0.0'
    }
  2. 清理项目

    bash
    ./gradlew clean
  3. 重新构建项目

    bash
    ./gradlew build

注意事项

  • 确保您的项目中没有其他地方引用了 xml/gma_ad_services_config 资源文件
  • 如果您之前创建了自定义的 gma_ad_services_config.xml 文件,现在可以安全地删除它
  • 检查所有模块的 Manifest 文件,确保没有残留的 AD_SERVICES_CONFIG 配置

验证解决方案

升级完成后,您可以通过以下方式验证:

  1. 项目能够正常编译,不再出现资源找不到的错误
  2. 广告功能正常工作,没有运行时错误
  3. 检查构建日志,确认没有相关警告

附加信息

此变更是 Google 移动广告 SDK 24.0.0 版本的一部分,旨在简化配置并减少合并冲突。更多详情请参考 Google 移动广告开发者博客

如果您遇到其他相关问题,建议查看官方文档或检查是否有其他过时的配置需要更新。