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

升级Android SDK至API 33后遇missingLeanbackSupport lint错误的解决咨询

解决API 33升级后MissingLeanbackLauncher lint错误问题

问题背景

升级编译和目标SDK至API 33后,Manifest文件触发missingLeanbackSupport lint错误,具体提示:

/bitrise/src/app/src/main/AndroidManifest.xml:2: Error: Expecting an activity to have android.intent.category.LEANBACK_LAUNCHER intent filter [MissingLeanbackLauncher]

已添加以下禁用Leanback支持的配置,但错误仍存在:

<uses-feature
    android:name="android.software.leanback"
    android:required="false" />
<uses-feature
    android:name="android.hardware.touchscreen"
    android:required="true" />

若为启动页SplashActivity配置LEANBACK_LAUNCHER意图过滤器,应用在API 33环境下无法运行(API 32及以下版本正常),相关配置如下:

<activity
        android:name=".splash.SplashActivity"
        android:autoRemoveFromRecents="true"
        android:exported="true"
        android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
        </intent-filter> ...

需求:除忽略lint错误外,寻求其他有效解决办法。


可行解决方案

1. 移除Leanback相关依赖

Lint触发该错误的核心原因是检测到项目中存在leanback类库依赖(如androidx.leanback:leanback)。直接移除这类依赖,Lint会自动停止强制要求配置LEANBACK_LAUNCHER,无需额外声明uses-feature。

2. 细粒度控制Lint规则

不要全局忽略所有Lint错误,针对该规则做精准禁用,可在模块的build.gradle中配置:

android {
    lint {
        // 仅禁用MissingLeanbackLauncher规则
        disable 'MissingLeanbackLauncher'
        // 可选:针对特定变体禁用(如仅非TV版本)
        variantFilter { variant ->
            if (!variant.name.contains("tv")) {
                disable 'MissingLeanbackLauncher'
            }
        }
    }
}

3. 条件化配置LEANBACK_LAUNCHER

若必须保留Leanback依赖但仅支持手机设备,可通过android:maxSdkVersion限制LEANBACK_LAUNCHER仅在API 32及以下生效,同时配合tools:ignore规避Lint检查:

<!-- 确保Manifest根标签已声明tools命名空间:xmlns:tools="http://schemas.android.com/tools" -->
<activity
        android:name=".splash.SplashActivity"
        android:autoRemoveFromRecents="true"
        android:exported="true"
        android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <!-- 仅在SDK <33时添加LEANBACK_LAUNCHER -->
            <category android:name="android.intent.category.LEANBACK_LAUNCHER"
                      android:maxSdkVersion="32"
                      tools:ignore="MissingLeanbackLauncher" />
        </intent-filter>
</activity>

4. 排查Manifest合并问题

部分第三方库或子模块的Manifest可能隐式添加了Leanback相关配置,导致Lint误判。可通过以下命令生成合并后的Manifest文件,排查配置来源:

./gradlew app:mergeDebugAndroidManifest

生成文件路径通常为app/build/intermediates/merged_manifests/debug/AndroidManifest.xml,检查是否存在额外的uses-feature或Leanback相关声明,针对性移除或覆盖。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:50:44