出于测试目的,我创建了一个示例 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 Studio 似乎正在使用类别
android.intent.category.LAUNCHER
来启动您的 MainActivity
,因此您可以通过在您的 <category android:name="android.intent.category.LAUNCHER" />
的清单中添加 MainActivity
来解决您的问题。
我遇到了同样的错误。在新用法中,有必要使用前面提到的第一页。
开始: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>
...
详细信息可以查看: