问题描述
创建AndroidTV NoActivity工程时,运行报错
环境:Android Studio 、Kotlin
Process: com.example.kotlinstudy, PID: 15359
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.kotlinstudy/com.example.kotlinstudy.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
其中AndroidManifest.xml中application的theme为Theme.Leanback
原因分析:
活动继承问题
这里虽说安装报错提示将AndroidManifest.xml中application的theme改为Theme.AppCompat可解决报错,但不应该如此解决,报错原因是因为工程活动创建是默认继承的AppCompatActivity()与Leanback样式不搭配。
基于AndroidTV开发使用Leanback,所以我们应该调整Activity的继承,如FragmentActivity()。
解决方案:
修改活动继承为FragmentActivity() ,原来是AppCompatActivity()
class MainActivity : FragmentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
本文介绍了解决在Android TV开发过程中遇到的Activity启动错误问题。通过调整Activity的继承方式从AppCompatActivity改为FragmentActivity,避免了Theme.AppCompat与Theme.Leanback之间的冲突。
531

被折叠的 条评论
为什么被折叠?



