Android 类型不匹配:推断类型为Fragment,但应为YouTubePlayerSupportFragment

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

自从升级我的Android Studio后,我就一直遇到这个错误。 这是我的活动_main.xml(相关部分)


这是我的主要活动

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
}