YouTube播放器崩溃(java.lang.NullPointerException,空对象引用)

YouTube播放器崩溃(java.lang.NullPointerException,空对象引用),java,android,youtube,Java,Android,Youtube,我的YouTube播放器崩溃了,我不知道为什么 这是我的Java代码: @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_youtube); Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar); 设置支持操作栏(工具栏) 问题已经解决了现在我们需要一些额外的信息来最终回答

我的YouTube播放器崩溃了,我不知道为什么

这是我的Java代码: @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_youtube); Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar); 设置支持操作栏(工具栏)


问题已经解决了

现在我们需要一些额外的信息来最终回答这个问题,但这行似乎返回null,这表明您需要查看资源XML并确保正确获取片段

getSupportFragmentManager().findFragmentById(R.id.youtube\u player\u fragment);

您可能会从以下相关问题中受益:


我怀疑问题可能在于,在您的资源XML中,您没有使用支持库声明片段

尝试使用:

<fragment
  android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"

现在,我们需要一些额外的信息来最终回答这个问题,但这行似乎返回null,这表明您需要查看资源XML并确保正确获取片段

getSupportFragmentManager().findFragmentById(R.id.youtube\u player\u fragment);

您可能会从以下相关问题中受益:


我怀疑问题可能在于,在您的资源XML中,您没有使用支持库声明片段

尝试使用:

<fragment
  android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"

我尝试了很多这样的建议,但没有一个对我有效。我最终创建了一个容器,然后在运行时用YouTubeFragment替换它。这对我来说非常有效

  • 在我的布局文件中创建了containerView,请注意,它只是我布局文件的一部分

    <View
        android:padding="10dp"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/gray90"/>
    
    
    
    <FrameLayout
        android:padding="20dp"
        android:id="@+id/youtubeContent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    

    
    
  • 然后我创建了一个youtube片段的实例,如下所示

    youTubePlayerFragment=YouTubePlayerSupportFragment.newInstance()

  • 然后,我使用以下标准方式替换它:-

    FragmentManager=getFragmentManager(); FragmentTransaction=manager.beginTransaction(); replace(R.id.youtubeContent,youTubePlayerFragment.commit()


  • 我希望这对其他人有帮助

    我尝试了很多这样的建议,但没有一个对我有效。我最终创建了一个容器,然后在运行时用YouTubeFragment替换它。这对我来说非常有效

  • 在我的布局文件中创建了containerView,请注意,它只是我布局文件的一部分

    <View
        android:padding="10dp"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/gray90"/>
    
    
    
    <FrameLayout
        android:padding="20dp"
        android:id="@+id/youtubeContent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    

    
    
  • 然后我创建了一个youtube片段的实例,如下所示

    youTubePlayerFragment=YouTubePlayerSupportFragment.newInstance()

  • 然后,我使用以下标准方式替换它:-

    FragmentManager=getFragmentManager(); FragmentTransaction=manager.beginTransaction(); replace(R.id.youtubeContent,youTubePlayerFragment.commit()


  • 我希望这对其他人有所帮助

    片段XML是什么样子的(R.id.youtube\u player\u fragment)?因为我的内容中有片段XML是什么样子的(R.id.youtube\u player\u fragment)?因为我的内容中有片段XML?我认为方法playerFragment.initialize(YouTubeKey,这个);是否返回null,不是吗?@FabianSawischa我在我的答案中添加了一个编辑。您是否尝试过在布局中切换名称以使用支持库?谢谢,伙计!您帮了我很多忙。我认为方法playerFragment.initialize(YouTubeKey,这个);是否返回null,不是吗?@FabianSawischa我在我的答案中添加了一个编辑。您是否尝试过在布局中切换名称以使用支持库?谢谢,伙计!您帮了我很多忙。