【问题标题】:How to disable Android TV Support in my app? Manifest complaining about missing LEANBACK_LAUNCHER如何在我的应用中禁用 Android TV 支持?清单抱怨缺少 LEANBACK_LAUNCHER
【发布时间】:2019-04-19 19:12:01
【问题描述】:

我一直在寻找从清单中禁用 Android TV 支持的方法。我知道我们的应用程序不兼容,而且我读到即使您打算支持 Android TV,应用程序仍然不受支持。

但是,我还没有找到阻止 Manifest 请求 INTENBACK_LAUNCHER 的方法。我不想定义一个,因为我知道我们的应用与电视不兼容。

这些是我现在收到的警告:

期待使用功能 android:name="android.software.leanback" android:required="false" 标签。

期望 Activity 具有 android.intent.category.LEANBACK_LAUNCHER 意图过滤器。

硬件功能 android.hardware.touchscreen 未明确标记为可选

所以当我尝试提供预期的标签时,即使我说以下内容:

使用功能 android:name="android.hardware.touchscreen" android:required="true"

它仍然会发出警告,说它可能不被所有电视支持,这只不过是一个警告,但真的很烦人,因为我故意不想支持 Android TV。即使在我仍然收到 LEANBACK_LAUNCHER 意图过滤器警告之后。

我不需要触摸屏来摆脱要求 LEANBACK_LAUNCHER 的清单吗?我猜有些电视有触摸屏?

有人知道如何明确禁用 Android TV 支持吗?

谢谢,

【问题讨论】:

  • 您的清单中的<application> 元素是否恰好有banner 属性?
  • 没有。不幸的是,应用程序元素中没有横幅属性。

标签: android android-manifest android-tv disable


【解决方案1】:

您可以通过将 tools:ignore 属性添加到清单中来禁用 lint 检查,如下所示:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.sampleapp"
    tools:ignore="ImpliedTouchscreenHardware,MissingLeanbackLauncher,MissingLeanbackSupport">

【讨论】:

    【解决方案2】:

    我坚持这一点,但我认为这只是一个无法识别我的应用程序的错误,它不是一个 android TV 应用程序!

    现在我在清单中添加这些行并修复了 3 个警告中的 2 个

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

    很遗憾,我还没有针对最后一个警告的任何解决方案

    期望 Activity 具有 android.intent.category.LEANBACK_LAUNCHER 意图过滤器。

    打算在电视设备上运行的应用程序必须声明启动器 清单中的电视活动使用 android.intent.category.LEANBACK_LAUNCHER 意图过滤器。问题编号: 缺少LeanbackLauncher

    我可以添加LEANBACK_LAUNCHER,但我不想!因为我想完全禁用 android 电视支持。

    如果需要,创建一个 Activity 并在清单中添加这些行

      <activity
        android:name="com.example.android.TvActivity"
        android:label="@string/app_name"
        android:theme="@style/Theme.Leanback">
    
        <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
        </intent-filter>
    
      </activity>
    

    现在给你错误添加横幅。添加这一行

    <application
      android:banner="@drawable/banner" >
    

    【讨论】:

    • 这实际上并没有删除支持。您只是在这样做,因此支持是“可选的”,并且仍然会使您的 apk 膨胀。它需要从清单中删除。
    【解决方案3】:

    从您的依赖项中移除 Leanback,例如 //实现'androidx.leanback:leanback:1.0.0'

    从清单中删除

    <!--uses-feature android:name="android.software.leanback" android:required="false" /-->
    <!--category android:name="android.intent.category.LEANBACK_LAUNCHER" /-->
    <!--application android:banner="@drawable/banner" -->
    

    【讨论】:

      【解决方案4】:

      无论您导入的哪个库导致了问题,都将leanback 排除在外

      implementation("com.library.using.tv:foo") {
          exclude group: 'androidx.leanback', module: 'leanback'
      }
      

      如果你不怀疑任何库,那么check your dependency tree

      【讨论】:

        猜你喜欢
        • 2017-01-28
        • 1970-01-01
        • 2015-10-31
        • 2018-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-30
        • 2015-03-13
        相关资源
        最近更新 更多