【问题标题】:Exoplayer2 throwing error inflating class com.google.android.exoplayer2.ui.PlayerView on many Vivo devicesExoplayer2 在许多 Vivo 设备上引发错误膨胀类 com.google.android.exoplayer2.ui.PlayerView
【发布时间】:2019-10-01 13:03:23
【问题描述】:

我的 exoplayer2 在三星、摩托罗拉、小米、索尼等设备上的发布和调试版本都运行良好。

但是当我在 Play Store 上发布我的应用程序时,它会在诸如 nexus 4(Android 版本 6.0.1)和一些 Vivo 型号(如 Vivo Y53、Y71 和 V5)具有 android 版本 6.0.1、7 的设备上引发错误和 8.

Crashlytics 显示此错误:由 android.view.InflateException 引起:二进制 XML 文件第 153 行:膨胀类 com.google.android.exoplayer2.ui.PlayerView 时出错

我的代码已经包含Error inflating class com.google.android.exoplayer2.ui.SimpleExoPlayerView 中提到的属性,但在少数设备上仍然存在问题。

可能是因为 Vivo 和 Nexus 设备中的自定义 ROM 吗?

【问题讨论】:

标签: android exoplayer2.x inflate-exception


【解决方案1】:

找到了解决方案,这不是任何开发错误,因为如果它是任何代码错误,那么它应该发生在多个设备上。

所以,我最后的手段是纠正到底发生了什么。由于应用程序的 apk 是作为包上传的,那么如果用户在通过 ShareIt 或 Whatsapp 共享包 apk(旁加载)后安装应用程序,它就会崩溃,因为它是应用包的属性,我们无法共享从中生成的 APK捆绑。

所以,为了检查用户是否通过侧载安装应用,我们可以添加谷歌的播放核心库,让他们知道“应用缺少组件。请从 playstore 安装”。

分级:

implementation 'com.google.android.play:core:1.6.3'

onCreate() 中的应用程序类:

if (MissingSplitsManagerFactory.create(this)
         .disableAppIfMissingRequiredSplits()) {
      return;
      // Skip app initialization.
}

【讨论】:

  • 仍然出现错误,这是有效的解决方案吗?
【解决方案2】:

根据文档,请在 build.gradle(Module:app) 中添加以下行

compileOptions {
    targetCompatibility JavaVersion.VERSION_1_8
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    相关资源
    最近更新 更多