运行./gradlew :app:lint报Media Capabilities property not specified错误如何修复
修复方案
共有两种合规的修复方式,可根据应用实际需求选择:
方案1:显式声明媒体能力(推荐适配方案)
这是符合Android官方规范的修复方式,适配Android 12+的自动转码特性:
- 首先在
AndroidManifest.xml的<application>节点内添加媒体能力声明的meta-data:
<application android:name=".App" android:allowBackup="false" android:icon="@mipmap/ic_launcher" ...> <!-- 添加这行媒体能力声明 --> <meta-data android:name="android.content.MEDIA_CAPABILITIES" android:resource="@xml/media_capabilities" /> ... </application>
- 在
res/xml目录下新建media_capabilities.xml文件,声明应用支持/不支持的媒体格式:
<?xml version="1.0" encoding="utf-8"?> <media-capabilities xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 声明不支持的格式,系统会自动将这类格式转码为应用支持的通用格式 --> <format android:name="HEVC" android:supported="false" /> <format android:name="HDR10" android:supported="false" /> <!-- 支持的格式可以省略,默认视为支持,也可以显式声明 --> <format android:name="H264" android:supported="true" /> </media-capabilities>
注:你可以根据应用实际的媒体解码能力调整支持/不支持的格式列表。
方案2:屏蔽Lint错误(临时规避方案)
如果你的应用不需要系统自动转码能力,或暂时没时间做适配,可以直接屏蔽该错误提示,有两种实现方式:
- 局部屏蔽:在
AndroidManifest.xml的<application>节点添加tools:ignore属性:<application android:name=".App" android:allowBackup="false" android:icon="@mipmap/ic_launcher" tools:ignore="MediaCapabilities" ...> - 全局屏蔽:在项目根目录的
lint.xml文件中添加规则(没有该文件可以新建):<?xml version="1.0" encoding="UTF-8"?> <lint> <issue id="MediaCapabilities" severity="ignore" /> </lint>
内容的提问来源于stack exchange,提问作者Hello_Berial
相关产品推荐
相关产品推荐

