【问题标题】:Crash when casting due to support library由于支持库,投射时崩溃
【发布时间】:2018-05-28 09:43:52
【问题描述】:

在我的项目中,我使用以下版本的库。

支持库 - 27.1.1

Google Play 服务 - 15.0.1

Play-services-cast-framework - 15.0.1

Mediarouter-v7 - 27.1.1

cast-service-framework 'VideoCastNotificationService'(包:com.google.android.libraries.cast.companionlibrary.notification)中的一个类使用'NotificationCompat'(包:android.support.v7.app.NotificationCompat)作为通知服务。

NotificationCompat.Builder builder = (NotificationCompat.Builder) new NotificationCompat.Builder(this);

但是,此构造函数已在支持库版本 26.0.0 中被弃用,并在版本 27.0.0 中被删除。新的constructor除了context还有一个参数,即Channel id。

因此,当尝试投射时,应用程序崩溃并显示以下日志,

原因:java.lang.ClassNotFoundException:找不到类 “android.support.v7.app.NotificationCompat$Builder” java.lang.NoClassDefFoundError:解析失败: Landroid/support/v7/app/NotificationCompat$Builder; 在 com.google.android.libraries.cast.companionlibrary.notification.VideoCastNotificationService.build(VideoCastNotificationService.java:338)

我必须使用最新版本的支持库和目标 SDK 来支持最新的 Android 版本。从最新的 cast-service-framework 中,它也会调用已弃用的“NotificationCompat”构造函数,这会导致崩溃。

谁能帮忙解决这个问题?

【问题讨论】:

    标签: android android-support-library chromecast


    【解决方案1】:

    将您的导入从 v7 更改为 v4,如下所示,

    import android.support.v4.app.NotificationCompat;.

    【讨论】:

      【解决方案2】:

      我发现了问题所在, com.google.android.libraries.cast.companionlibrary.notification.VideoCastNotificationService.build

      这是来自 CCL(Cast Companion Library),它仍然是项目的一部分,它是一个遗留项目。

      【讨论】:

        猜你喜欢
        • 2017-10-09
        • 2019-04-01
        • 1970-01-01
        • 2016-12-29
        • 1970-01-01
        • 2015-11-18
        • 1970-01-01
        • 2015-12-17
        • 2016-07-04
        相关资源
        最近更新 更多