Android集成YouTubePlayerView启动后闪退返回父Activity问题排查
问题修复方案
你遇到的Activity启动即闪退返回的问题由以下几个核心错误导致,按影响优先级排序修复即可:
Activity继承类错误(闪退核心原因)
官方YouTubePlayerView对承载的Activity有基类要求,不能直接继承AppCompatActivity,必须继承YouTubeBaseActivity,否则播放器初始化时会因缺少依赖的上下文接口直接抛出异常闪退。如果你必须保留AppCompatActivity的相关特性,需要将YouTubePlayerView替换为YouTubePlayerSupportFragment实现播放器。
修正后的类定义代码:public class Youtube extends YouTubeBaseActivity { // 其余原有代码保持不变 }视频加载参数传值错误
YouTubePlayer.loadVideo()方法不接受完整的YouTube网页链接,仅需传入URL中v=参数对应的视频ID即可,传入完整链接属于无效参数,会触发播放器加载异常。你当前使用的链接对应视频ID为u8QppD8yqdc,修改变量赋值:String adres = "u8QppD8yqdc";播放器布局参数错误
YouTubePlayerView不支持wrap_content作为高度属性,初始化视图测量时会因高度计算为0触发渲染异常,需要给播放器设置固定dp高度或者使用match_parent,修正布局代码:<com.google.android.youtube.player.YouTubePlayerView android:layout_width="match_parent" android:layout_height="240dp" android:id="@+id/player" android:layout_centerInParent="true"/>必要配置检查
- 代码中
apikey = "API_KEY"为占位符,需要替换为你自己申请的、已绑定当前应用包名与签名SHA1值的YouTube Data API v3合法密钥,否则播放器会初始化失败。 - 确认
AndroidManifest.xml中已添加网络权限声明:<uses-permission android:name="android.permission.INTERNET" /> - 确认模块的build.gradle文件中已正确引入YouTube播放器官方依赖库。
- 代码中
内容的提问来源于stack exchange,提问作者ded-logoped
相关产品推荐
相关产品推荐

