今天我收到这封电子邮件:
\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
我正在使用具有许多不同库依赖项的gradle项目并使用新的清单合并.在我的<application />标签中,我将其设置为:
<application tools:replace="android:icon, android:label, android:theme, android:name"
android:name="com.example.myapp.MyApplcation"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/application_name"
android:logo="@drawable/logo_ab"
android:theme="@style/AppTheme"
>
....
</application>
Run Code Online (Sandbox Code Playgroud)
然而,我收到错误:
/android/MyApp/app/src/main/AndroidManifest.xml:29:9 Error:
Attribute application@icon value=(@drawable/ic_launcher) from AndroidManifest.xml:29:9
is also present at {Library Name} value=(@drawable/app_icon)
Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:26:5 to override
/android/MyApp/app/src/main/AndroidManifest.xml:30:9 Error:
Attribute application@label value=(@string/application_name) from AndroidManifest.xml:30:9
is also present at {Library Name} value=(@string/app_name)
Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:26:5 to override
/android/MyApp/app/src/main/AndroidManifest.xml:27:9 Error:
Attribute application@name value=(com.example.myapp.MyApplication) from AndroidManifest.xml:27:9
is also present at {Another Library} …Run Code Online (Sandbox Code Playgroud) 当我尝试将我的应用程序提交到 Play 商店时,出现以下错误:
您在 Play 管理中心上的声明表明您的应用使用广告 ID。您的清单文件不包含 com.google.android.gms.permission.AD_ID 权限。
我已经AD_ID在我的AndroidManifest.xml文件中声明了权限,如下所示:
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
Run Code Online (Sandbox Code Playgroud)
我的应用程序targetSdk版本是33,我包含的 AdMob 广告库版本是21.3.0,如下:
implementation 'com.google.android.gms:play-services-ads:21.3.0'
Run Code Online (Sandbox Code Playgroud)
我已按照AdMob 入门指南中的每一步操作,但不起作用。
升级到 android 12 后,应用程序未编译。表明
“清单合并因多个错误而失败,请参阅日志”
合并清单中显示的错误:
合并错误:错误:android:exported 需要为 明确指定。面向 Android 12 及更高版本的应用需要为
android:exported相应组件定义了意图过滤器时指定显式值。有关详细信息,请参阅 https://developer.android.com/guide/topics/manifest/activity-element#exported。主清单(此文件)
我已将所有活动设置为android:exported="false". 但它仍然显示这个问题。
我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="eu.siacs.conversations">
<uses-sdk tools:overrideLibrary="net.ypresto.androidtranscoder" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission
android:name="android.permission.READ_PHONE_STATE"
android:maxSdkVersion="22" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-feature …Run Code Online (Sandbox Code Playgroud) Google Play Console(应用程序内容部分)声明我发布的应用程序使用
android.permission.QUERY_ALL_PACKAGES
Run Code Online (Sandbox Code Playgroud)
我想删除这个权限。
我检查了AndroidManifest.xml和合并清单,但找不到它。
我应该在哪里查找依赖项、库、ecc 包含的所有权限?谢谢。