提交应用至Google Play时AD_ID权限声明异常问题求助
针对你遇到的问题——已在AndroidManifest.xml中声明com.google.android.gms.permission.AD_ID权限,但提交应用仍被Play Console提示权限缺失——可以尝试以下排查和解决步骤:
验证合并后的清单是否包含权限
Android Gradle插件会自动合并所有依赖库的清单文件,可能存在权限被意外移除的情况。你可以通过以下方式确认:- 打包生成APK/AAB文件
- 在Android Studio中选择
Build > Analyze APK,选中打包后的文件 - 查看合并后的
AndroidManifest.xml,确认com.google.android.gms.permission.AD_ID权限是否存在
阻止权限被自动移除
在AndroidManifest.xml的权限声明中添加tools:node="merge"属性,强制Gradle保留该权限,避免被自动优化移除:<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="merge"/>注意需要在清单根标签中引入tools命名空间:
xmlns:tools="http://schemas.android.com/tools"检查依赖库的清单修改
部分第三方依赖库可能通过tools:remove指令移除AD_ID权限,你可以执行Gradle命令查看清单合并报告:./gradlew app:processReleaseManifest在输出的报告中搜索
AD_ID,查看是否有其他库移除了该权限,再针对性调整依赖或添加权限强制保留规则升级AdMob广告库版本
你当前使用的play-services-ads:21.3.0对targetSdk 33的兼容性存在局限,建议升级到22.0.0及以上版本,新版本针对Android 13(API 33)的权限机制做了适配:implementation 'com.google.android.gms:play-services-ads:22.6.0'清理项目缓存并重建
执行Build > Clean Project清理缓存,再执行Build > Rebuild Project重新打包,避免缓存导致的清单打包异常
内容的提问来源于stack exchange,提问作者Julia

