play-services-ads:24.0.0 の xml/gma_ad_services_config エラー解決
問題
Google Mobile Ads SDK のバージョンを 23.6.0 から 24.0.0 にアップグレードした後、ビルド時に次のエラーが発生します:
AAPT: error: resource xml/gma_ad_services_config (aka com.test.test:xml/gma_ad_services_config) not found.
このエラーは、プロジェクト内で参照されている xml/gma_ad_services_config
リソースファイルが見つからないことを示しています。
原因
この問題は、Google Mobile Ads SDK 24.0.0 で導入された重要な変更によるものです。公式ブログによると:
SDK 24.0.0 の変更点
AndroidManifest.xml から android.adservices.AD_SERVICES_CONFIG
プロパティタグが削除されました。これは、API固有のAd Servicesを設定するアプリでのマージ競合を防ぎ、開発者がAd Services設定をカスタマイズするための柔軟性を提供するためです。
つまり、バージョン 24.0.0 ではこの設定が不要になったため、以前のバージョンで使用していたマニフェスト設定を削除する必要があります。
解決方法
方法1: マニフェストの設定を削除(推奨)
- AndroidManifest.xml を開く
- 次の設定を削除またはコメントアウトする:
<!-- 以下の設定を削除またはコメントアウト -->
<!--
<property
android:name="android.adservices.AD_SERVICES_CONFIG"
android:resource="@xml/gma_ad_services_config"
tools:replace="android:resource" />
-->
- build.gradle でバージョンを 24.0.0 に更新:
implementation 'com.google.android.gms:play-services-ads:24.0.0'
- プロジェクトを同期してビルド
方法2: リソースファイルを保持する場合
もし何らかの理由で gma_ad_services_config.xml
ファイルを保持する必要がある場合は、プロジェクトの res/xml/
ディレクトリに空の設定ファイルを作成できます:
<?xml version="1.0" encoding="utf-8"?>
<ad-services-config xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 必要に応じて設定を追加 -->
</ad-services-config>
ただし、SDK 24.0.0 ではこの設定は基本的に不要となっているため、方法1の実施を推奨します。
注意点
WARNING
この変更は Android Ad Services の設定に関連しており、広告の表示自体には影響しません。単にマニフェストの競合を解消するための変更です。
参考情報
この変更により、アプリのビルドエラーが解消し、最新の Google Mobile Ads SDK の機能を利用できるようになります。