0

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

解析包时出现问题

该盒子运行Android 7.1.2,并通过了Android认证。

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

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

我浏览了一些与“解析包时出现问题”错误相关的文章,但没有一篇提到 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>

感谢您的任何建议。

4

1 回答 1

1

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

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

于 2018-03-22T12:38:54.507 回答