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,后续调用点击事件就炸了。
解决步骤:
确认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>- id为
修正setContentView的参数:把Activity2里的
setContentView代码改成加载Activity2对应的布局文件,比如:setContentView(R.layout.activity2); // 这里替换成你实际的布局文件名
额外检查点:
- 别忘了在
AndroidManifest.xml里正确声明Activity2,因为继承了YouTubeBaseActivity,不需要额外修改主题(如果有主题冲突可以排查下) - 后续测试播放时,确保
YouTubeConfig.getApiKey()返回的是有效的YouTube Data API密钥,这个虽然和当前空指针无关,但会影响视频播放功能
内容的提问来源于stack exchange,提问作者 Doflamingo
相关产品推荐
相关产品推荐

