Android Media3迁移报错:PlayerView Inflate失败求助
解决方案
问题根源
报错核心原因是你项目中自定义的播放控制布局exo_player_control_view.xml里,仍在使用旧ExoPlayer包下的com.google.android.exoplayer2.ui.DefaultTimeBar组件,但Media3已将该UI组件迁移到androidx.media3.ui包名下,导致系统找不到对应类,触发Inflate异常。
具体修复步骤
替换自定义控制布局中的旧UI组件
找到res/layout/exo_player_control_view.xml文件,完成以下替换:- 将
<com.google.android.exoplayer2.ui.DefaultTimeBar>替换为<androidx.media3.ui.DefaultTimeBar> - 同时检查布局内其他旧ExoPlayer组件(如
com.google.android.exoplayer2.ui.*下的按钮、控制视图等),全部替换为androidx.media3.ui.*下的对应类(例如旧的ExoPlayerControlView替换为androidx.media3.ui.PlayerControlView)
- 将
移除残留的旧ExoPlayer依赖
检查Module级别的build.gradle文件,确保没有任何com.google.android.exoplayer2相关的依赖声明,避免新旧库产生冲突。清理项目缓存并重建
执行以下操作清除旧编译产物和缓存:- 点击Android Studio菜单栏的
Build > Clean Project - 接着点击
Build > Rebuild Project - 若问题仍存在,执行
File > Invalidate Caches... > Invalidate and Restart
- 点击Android Studio菜单栏的
额外排查点
如果没有自定义控制布局,需要检查项目中所有布局文件,确认是否有其他地方引用了com.google.android.exoplayer2.ui包下的组件,统一替换为Media3的对应组件即可。
内容的提问来源于stack exchange,提问作者Azeem
相关产品推荐
相关产品推荐

