Android 类型不匹配:推断类型为Fragment,但应为YouTubePlayerSupportFragment
自从升级我的Android Studio后,我就一直遇到这个错误。 这是我的活动_main.xml(相关部分)Android 类型不匹配:推断类型为Fragment,但应为YouTubePlayerSupportFragment,android,kotlin,youtube-api,Android,Kotlin,Youtube Api,自从升级我的Android Studio后,我就一直遇到这个错误。 这是我的活动_main.xml(相关部分) 这是我的主要活动 lass MainActivity : AppCompatActivity() { lateinit var youTubePlayerSupportFragment: YouTubePlayerSupportFragment lateinit var youTubePlayer: YouTubePlayer override fun
这是我的主要活动
lass MainActivity : AppCompatActivity()
{
lateinit var youTubePlayerSupportFragment: YouTubePlayerSupportFragment
lateinit var youTubePlayer: YouTubePlayer
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initializeYoutubePlayer()
}
private fun initializeYoutubePlayer()
{
youTubePlayerSupportFragment = supportFragmentManager.findFragmentById(R.id.youtube_player_fragment) //<-- I get ERROR in this line
}
}
lass MainActivity:AppCompatActivity()
{
lateinit变量youTubePlayerSupportFragment:youTubePlayerSupportFragment
lateinit变量youTubePlayer:youTubePlayer
重写创建时的乐趣(savedInstanceState:Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
初始化youtubeplayer()
}
private fun initializeYoutubePlayer()
{
youTubePlayerSupportFragment=supportFragmentManager.findFragmentById(R.id.youtube\u player\u fragment)/在设置youTubePlayerSupportFragment
时,可以将强制转换操作符用作类型。默认情况下findFragmentById
返回类型的对象:
...
private fun initializeYoutubePlayer() {
youTubePlayerSupportFragment = supportFragmentManager.findFragmentById(R.id.youtube_player_fragment) as YouTubePlayerSupportFragment
}
...
一个更简单的选择是直接通过其ID使用片段,因为它已经在xml文件中定义:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//your Fragment is bound at this point
assert youtube_player_fragment != null
}
将其强制转换为YouTubePlayerSupportFragment
findFragmentById
的返回类型为Fragment
。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//your Fragment is bound at this point
assert youtube_player_fragment != null
}