You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android标签页跳转含YouTube嵌入视频的Activity2崩溃求助

解决Fragment跳转含YouTube API的Activity时出现NullPointerException的问题

嘿,这个空指针问题其实很好定位——你看报错信息里说Button.setOnClickListener调用在null对象上,说明btnPlay这个控件没找到,根源出在Activity2加载的布局文件不对!

看你的Activity2代码里写的是:

setContentView(R.layout.activity_main);

但这个activity_main布局里肯定没有你要找的btnPlay和youtubePlay这两个控件对吧?毕竟你是给Activity2集成YouTube API,对应的布局应该是专门给Activity2用的(比如叫activity2.xml),结果你加载了别的布局,findViewById自然返回null,后续调用点击事件就炸了。

解决步骤:

  1. 确认Activity2的布局文件:先检查你为Activity2创建的布局文件(比如res/layout/activity2.xml)里,确实包含了以下两个控件:

    • id为btnPlay的Button
    • id为youtubePlay的YouTubePlayerView
      示例布局大概长这样:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="16dp">
    
        <com.google.android.youtube.player.YouTubePlayerView
            android:id="@+id/youtubePlay"
            android:layout_width="match_parent"
            android:layout_height="250dp"/>
    
        <Button
            android:id="@+id/btnPlay"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="播放视频"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="16dp"/>
    </LinearLayout>
    
  2. 修正setContentView的参数:把Activity2里的setContentView代码改成加载Activity2对应的布局文件,比如:

    setContentView(R.layout.activity2); // 这里替换成你实际的布局文件名
    

额外检查点:

  • 别忘了在AndroidManifest.xml里正确声明Activity2,因为继承了YouTubeBaseActivity,不需要额外修改主题(如果有主题冲突可以排查下)
  • 后续测试播放时,确保YouTubeConfig.getApiKey()返回的是有效的YouTube Data API密钥,这个虽然和当前空指针无关,但会影响视频播放功能

内容的提问来源于stack exchange,提问作者 Doflamingo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 08:37:38