问题描述
创建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)
}
}