You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 16中MediaPlayer引发attributionTag未在Manifest声明的问题咨询

解决Android 16中MediaPlayer引发的"attributionTag not declared in manifest"错误日志

问题场景

日志中反复出现以下错误条目:

2025-07-31 10:56:31.326  1709-5052  AppOps                  system_server                        E  attributionTag  not declared in manifest of XXXX
2025-07-31 10:56:31.327  1709-2137  AppOps                  system_server                        E  attributionTag  not declared in manifest of XXXXX

该问题出现在使用MediaPlayer.create(context, alarmResourceId)加载raw目录下的ogg格式资源时,是Android 16新增的问题,此前版本未出现,且Manifest中未配置过任何attribution相关标签。

解决方案

Android 16(API 36)新增了媒体操作的归因标签强制要求,只需在Manifest中添加以下配置即可消除错误:

方式一:配置应用全局默认归因标签

在<application>标签内添加android:defaultAttributionTag属性,自定义一个标签名称即可:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:defaultAttributionTag="app_media_default" <!-- 新增这一行 -->
    ...>
    <!-- 其他组件声明 -->
</application>

方式二:为特定组件单独配置归因标签

如果需要针对使用MediaPlayer的组件(比如播放音频的Activity/Service)单独设置,可在对应组件标签内添加android:attributionTag:

<activity
    android:name=".AlarmPlaybackActivity"
    android:attributionTag="alarm_media_attribution" <!-- 新增这一行 -->
    ...>
</activity>

原因说明

Android 16开始,系统要求所有媒体相关操作必须携带归因标签,用于追踪媒体资源的使用来源。当调用MediaPlayer.create()时,系统会自动从上下文对应的组件或应用全局配置中获取归因标签,若两者都未配置,就会触发该错误日志。

内容的提问来源于stack exchange,提问作者de11833

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:54:54