无法在Android电视盒上安装apk

时间:2018-03-14 17:42:31

标签: android apk android-tv tvbox

我正在为Android TV编写应用程序。它可以在模拟器上以及在Android TV盒上的调试模式下运行。但是,当我使用Android Studio生成apk并尝试在同一个盒子上安装该apk时,它会以下面的错误结束。

  

解析包裹有问题

该框运行的是Android 7.1.2,并且已通过Android认证。

我在运行Android 6.0.1的未经认证的盒子上尝试了同样的操作并且安装完成了,但安装过程结束时的“打开”按钮被禁用,并且应用程序不在菜单中的其他已安装的应用程序中。

首先,我认为我在Android清单中搞砸了一些东西,所以我尝试在Android工作室中创建新的电视项目并重复相同的过程,但它的行为相同。

我已经阅读了一些与“解析程序包有问题”相关的文章,但没有人提到Android TV,我在开发手机/平板电脑时从未遇到过这个问题。

我也试过了:

  • 检查是否允许安装来自未知来源的应用
  • 降低compileSdkVersion和targetSdkVersion
  • 生成签名的apk

我错过了什么吗?

以下是Android Studio创建的默认应用的清单。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cz.okycelt.mockandroidtvproject">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.Leanback">
        <activity
            android:name=".MainActivity"
            android:banner="@drawable/app_icon_your_company"
            android:icon="@drawable/app_icon_your_company"
            android:label="@string/app_name"
            android:logo="@drawable/app_icon_your_company"
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".DetailsActivity" />
        <activity android:name=".PlaybackActivity" />
        <activity android:name=".BrowseErrorActivity" />
    </application>
</manifest>

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

我发现了这个问题。问题是在android清单中主要活动的意图过滤器中缺少CATEGORY_LAUNCHER。显然,CATEGORY_LEANBACK_LAUNCHER是不够的,无论该应用程序只是Android TV。

<category android:name="android.intent.category.LAUNCHER" />