由于支持库导致投射时崩溃

Crash when casting due to support library

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

Support Library - 27.1.1

Google Play Services - 15.0.1

Play-services-cast-framework - 15.0.1

Mediarouter-v7 - 27.1.1

A class in 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 中删除。新的构造器除了上下文还有一个参数,即频道 ID。

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

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.app.NotificationCompat$Builder" java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/app/NotificationCompat$Builder; at com.google.android.libraries.cast.companionlibrary.notification.VideoCastNotificationService.build(VideoCastNotificationService.java:338)

我必须使用最新版本的支持库和目标 sdk 来支持最新的 Android 版本。同样在最新的 cast-service-framework 中,它调用了已弃用的 'NotificationCompat' 构造函数,这会导致崩溃。

谁能帮忙解决这个问题?

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

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

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

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