【发布时间】:2018-11-26 22:58:40
【问题描述】:
我打开了旧的 Android TV 应用项目并尝试更新依赖项。然后我将 appcompat 库更新为 27.1.1。我打开了leanback 片段,Android Studio 警告我BrowseFragment 已弃用,我应该改用BaseSupportFragment。其他leanback 片段的情况相同。然后我将所有片段更改为 AppCompat 版本(LeanbackSettingsFragment 除外,因为没有提供 AppCompat 版本),然后更改了我的活动扩展 AppCompatActivity。
进行这些更改后,我构建了应用程序,但是当我启动应用程序时,我在 logcat 中看到了这个错误:
无法启动活动 ComponentInfo{net.swiftzer.trainboard.dev/net.swiftzer.trainboard.main.MainActivity}:java.lang.IllegalStateException:您需要在此活动中使用 Theme.AppCompat 主题(或后代) .
我用于应用程序和活动的主题都在Theme.Leanback下。但是我检查了主题是基于平台原生主题的。
我应该坚持使用已弃用的leanback 片段类,还是应该使用leanback 库提供 AppCompat 主题? Leanback 库就像一个半生不熟的库。去年我看到leanback 库确实提供了 AppCompat 版本的片段,但没有示例项目使用它们。现在他们将扩展自 android.app.Fragment 的片段类标记为已弃用,但它们没有提供适当的迁移方式。
【问题讨论】:
标签: android android-appcompat android-tv leanback