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

ExoPlayer视图膨胀错误:模拟器正常但未签名APK崩溃求助

解决方案:未签名APK崩溃但模拟器正常,InflateException加载SimpleExoPlayerView

先还原你遇到的错误日志:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tv2z.demo/com.tv2z.demo.DemoActivity}: android.view.InflateException: Binary XML文件第32行:Binary XML文件第32行:Error inflating class com.google.android.exoplayer2.ui.SimpleExoPlayerView at android.app.ActivityThread.performLaunchActivit...

这种场景我帮不少开发者排查过——模拟器跑debug包一切正常,但打未签名的release包就崩溃,核心原因几乎都是ProGuard混淆误删了ExoPlayer的关键类/资源,或者release打包时资源未正确嵌入。下面是针对性的解决步骤:

1. 优先排查ProGuard混淆配置

Debug构建默认不会开启严格的混淆和代码压缩,所以模拟器里没问题,但release包如果开了minifyEnabled true,就会把ExoPlayer未被显式引用的类(包括UI组件)删掉,导致XML加载SimpleExoPlayerView时找不到类。

解决方法:

  • 打开Module级build.gradle,确认release构建的混淆开关:
    buildTypes {
        release {
            minifyEnabled true // 若此处为true,必须添加ExoPlayer混淆规则
            shrinkResources true // 若开了资源压缩,也要确保ExoPlayer资源不被删除
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    
  • 在proguard-rules.pro文件中添加ExoPlayer专属混淆规则:
    # 保留ExoPlayer核心类与接口
    -keep class com.google.android.exoplayer2.** { *; }
    -keep interface com.google.android.exoplayer2.** { *; }
    -dontwarn com.google.android.exoplayer2.**
    
    # 保留ExoPlayer UI组件类(关键!因为你用到了SimpleExoPlayerView)
    -keep class com.google.android.exoplayer2.ui.** { *; }
    -keep interface com.google.android.exoplayer2.ui.** { *; }
    
    # 若开启资源压缩,添加以下规则保留ExoPlayer资源
    -keepresources string/exo_**
    -keepresources drawable/exo_**
    -keepresources layout/exo_**
    

2. 检查ExoPlayer依赖是否完整

如果没开混淆还是崩溃,可能是release打包时未正确引入ExoPlayer的UI依赖:

  • 确认Module级build.gradle中已添加ExoPlayer UI组件的依赖:
    // 替换为你实际使用的ExoPlayer版本号,比如2.19.1
    implementation "com.google.android.exoplayer:exoplayer-ui:2.X.X"
    
  • 执行Build -> Clean Project,再点击Rebuild Project,清理缓存后重新打包。

3. 其他排查点

  • 检查XML布局文件中SimpleExoPlayerView的包名是否拼写正确,确保是com.google.android.exoplayer2.ui.SimpleExoPlayerView
  • 确认未签名APK的目标SDK版本与模拟器一致,避免版本兼容性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:30:35