无法在 Google Play 中更新我的应用程序,因为它显示:
此版本包含 com.google.android.gms.permission.AD_ID 权限,但您在 Play 管理中心上的声明表明您的应用不使用广告 ID。
您必须更新您的广告 ID 声明。
首先,该应用程序不使用广告。
注入权限的库是 ->jetified-play-services-ads-identifier-18.0.0但我不知道它来自哪里。另外,为了确保删除此权限(无论如何),请在我的应用程序清单中添加:
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)
但它仍然说我的应用程序无法更新,因为它包含该权限。我已经通过 APK 分析器检查了清单,只是为了确定,它在清单文件中没有权限(我不知道为什么它仍然说权限在那里)...
但同样的事情仍然发生:(
更新
找到此权限的来源并禁用这些模块:
implementation ("com.google.firebase:firebase-analytics-ktx:21.1.0") {
exclude module: "play-services-ads-identifier"
exclude module: "play-services-measurement"
exclude module: "play-services-measurement-sdk"
exclude module: "play-services-measurement-api"
}
Run Code Online (Sandbox Code Playgroud)
更改之后,合并的清单不再包含也通过 APK 分析器测试的权限,但不幸的是 Google Play 仍然说该应用程序包含权限(奇怪)...
如有任何帮助,我们将不胜感激:)
android android-manifest google-play android-studio google-advertising-id
今天我收到这封电子邮件:
\n\n\n去年 7 月,我们宣布了广告政策变更,以帮助加强\n安全和隐私。我们对针对儿童的应用使用的标识符添加了新的限制。\n 当用户选择删除其\n广告 ID 以退出个性化广告时,\n如果开发人员尝试访问标识符,\n他们将收到一串零而不是标识符。从 2022 年 4 月 1 日起,此行为将扩展到手机、平板电脑和 Android TV。我们还\n宣布,当您将应用的目标 API 级别更新为\n31 (Android 12) 时,\n您需要声明 AD_ID 权限。今天,我们宣布\n我们将给予开发者更多时间来缓解过渡。当您的应用能够定位\nAndroid 13 而不是从 Android 12 开始时,\n我们将需要此权限声明。
\n操作项 如果您使用广告 ID,则当您的应用面向 Android 13 或更高版本时,您必须声明 AD_ID\n权限。不\xe2\x80\x99t\n声明权限的应用程序将获得一串零。注意:今年晚些时候,您\xe2\x80\x99 将能够面向 Android 13。如果您的应用使用已声明广告 ID 权限的 SDK,\n它将通过清单合并获取该权限声明。如果您的应用\xe2\x80\x99 的目标受众\n包括儿童,则不得传输\n儿童或未知年龄用户的 Android 广告 ID (AAID)。
\n
我的应用程序未使用广告 ID。我是否应该AD_ID在清单中声明权限?
java android admob google-advertising-id google-play-console
在设备应用程序上运行应用程序后,需要在清单文件中未提及的不需要的位置权限 当我从我的朋友Android工作室运行相同的代码而不是运行正常而没有额外的权限需要.
清单文件
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

Build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "xxxxxxx"
}
dexOptions {
javaMaxHeapSize "4g"
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
lintOptions{
abortOnError false
}
}
repositories { …Run Code Online (Sandbox Code Playgroud) android android-manifest android-permissions build.gradle android-gradle-plugin