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

bcs8qyzn  于 2023-05-05  发布在  Android
关注(0)|答案(3)|浏览(226)

我创建了一个用于测试目的的Android TV示例应用程序。我按照文档在
https://developer.android.com/training/tv/start/start
这是我的manifest文件的样子:

<?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>

这是我在android tv模拟器上运行该应用程序时得到的结果。有人能告诉我清单文件中缺少了什么吗?我有主活动,清单看起来很好。

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模拟器上启动。

dba5bblo

dba5bblo1#

Android Studio似乎正在使用类别android.intent.category.LAUNCHER来启动MainActivity,因此您可以通过在MainActivity的yout清单中添加<category android:name="android.intent.category.LAUNCHER" />来修复您的问题。

3pmvbmvn

3pmvbmvn2#

我得到了同样的错误。在新的用法中,必须如上所述将用于第一页。
启动: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>
...

3231等API的使用

...
<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

gj3fmq9x

gj3fmq9x3#

我在用

<activity
    android:name="com.example.myapplication.MainActivity"    
    android:label="@string/app_name" >    
    <intent-filter>    
        <action android:name="android.intent.action.MAIN" />    
        <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
        <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter>    
</activity>

并且适用于所有API

相关问题