在 Android TV 模拟器上运行时缺少 MainActivity 错误

问题描述 投票:0回答:2

出于测试目的,我创建了一个示例 Android TV 应用程序。我遵循了

上的文档

https://developer.android.com/training/tv/start/start

这是我的清单文件的样子:


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

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

    <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.CourseViewer">
        <activity
            android:name=".MainActivity"
            android:banner="@drawable/app_icon_your_company"
            android:exported="true"
            android:icon="@drawable/app_icon_your_company"
            android:label="@string/title_activity_main"
            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"
            android:exported="false" />
        <activity
            android:name=".PlaybackActivity"
            android:exported="false" />
        <activity
            android:name=".BrowseErrorActivity"
            android:exported="false" />
    </application>

</manifest> 

这是我在安卓电视模拟器上运行应用程序时得到的结果。有人可以让我知道清单文件中缺少什么吗?我确实有 MainActivity,清单对我来说很好。

02/20 11:38:56: Launching 'app' on Android TV (4K) API 33.
Install successfully finished in 824 ms.
$ adb shell am start -n "edu.app.courseviewer/edu.app.courseviewer.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Error while executing: am start -n "edu.app.courseviewer/edu.app.courseviewer.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=edu.app.courseviewer/.MainActivity }
Error type 3
Error: Activity class {edu.app.courseviewer/edu.app.courseviewer.MainActivity} does not exist.

Error while Launching activity
Failed to launch an application on all devices

我试过重新启动android studio,使缓存无效并重新启动,同步gradle文件。我希望该应用程序能够在 Android TV 模拟器上启动。

android android-tv leanback
2个回答
1
投票

Android Studio 似乎正在使用类别

android.intent.category.LAUNCHER
来启动您的
MainActivity
,因此您可以通过在您的
<category android:name="android.intent.category.LAUNCHER" />
的清单中添加
MainActivity
来解决您的问题。


0
投票

我遇到了同样的错误。在新用法中,有必要使用前面提到的第一页。

开始:Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=edu.app.courseviewer/.MainActivity }

API的使用

33

...
<intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
...

API的使用

32
,
31

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

详细信息可以查看:

https://developer.android.com/training/tv/start/start

© www.soinside.com 2019 - 2024. All rights reserved.