升级targetSdkVersion 34遇AdMob依赖前台服务类型缺失问题求助
解决targetSdkVersion 34升级时AdMob前台服务未指定类型的问题
以下是几种可行的解决方案:
方案1:在本地Manifest中覆盖AdService声明
直接在你的项目AndroidManifest.xml中重新声明AdService,补充前台服务类型并强制替换属性:
<service android:name="com.google.android.gms.ads.AdService" android:enabled="true" android:exported="false" android:foregroundServiceType="dataSync" tools:replace="android:foregroundServiceType" tools:ignore="MissingClass" />
android:foregroundServiceType选择dataSync即可适配AdMob服务的核心用途,若有其他场景可按需添加多个类型(用|分隔)tools:replace确保本地声明覆盖依赖库中的原有配置,避免属性冲突
方案2:升级至最新版AdMob依赖
Google通常会针对Android版本要求更新依赖库,升级到最新版的play-services-ads,新版大概率已经补全了前台服务类型的声明:
implementation 'com.google.android.gms:play-services-ads:24.0.0'
(注:可根据实际发布情况替换为当前最新稳定版本)
方案3:临时忽略警告(不推荐长期使用)
如果需要临时过渡,可在本地Manifest的AdService声明中添加忽略规则,但这只是规避编译警告,无法解决运行时潜在风险:
<service android:name="com.google.android.gms.ads.AdService" android:enabled="true" android:exported="false" tools:ignore="MissingClass,ForegroundServiceType" />
内容的提问来源于stack exchange,提问作者Mohammad Ghoncheh
相关产品推荐
相关产品推荐

