【发布时间】:2019-06-05 09:06:47
【问题描述】:
android.support.v4.media.app.NotificationCompat.MediaStyle() 在音乐播放器应用程序中运行良好,但在迁移到 android x 后出现此错误:找不到符号类 MediaStyle。任何帮助将不胜感激。
【问题讨论】:
android.support.v4.media.app.NotificationCompat.MediaStyle() 在音乐播放器应用程序中运行良好,但在迁移到 android x 后出现此错误:找不到符号类 MediaStyle。任何帮助将不胜感激。
【问题讨论】:
在 AndroidX 中,该特定样式位于不同的包中。您需要在媒体样式前面加上“androidx.media.app”。
换句话说:
builder.setStyle(new androidx.media.app.NotificationCompat.MediaStyle());
奇怪的是,我不需要在我的 gradle 文件中实现这个包,所以它可能与 AndroidX 内部依赖项有关。
【讨论】:
implementation "androidx.media:media:1.1.0",正如@Angel 所写。
对于我的情况,我需要将以下内容添加到我的 gradle 文件中以查找 NotificationCompat.MediaStyle() 类。
implementation "androidx.media:media:1.1.0"
https://developer.android.com/jetpack/androidx/releases/media
NotificationCompat.Builder(this, CHANNEL_ID)
.setStyle(new androidx.media.app.NotificationCompat.MediaStyle());
请注意,notificationCompat.Builder 与 MediaStyle 位于不同的包 (androidx.core.app.NotificationCompat) 中。
【讨论】:
将android.support.v4.media.app.NotificationCompat 迁移到androidx.core.app.NotificationCompat
这看起来与@karan 上面给出的答案相同。但是班级不一样。我花了好几天才发现androidx.media.app.NotificationCompat 是我的问题。
两者的区别;一个是androidx.core...,另一个是androidx.media...
【讨论】:
当您迁移到 androidX 后,您需要对类使用等效导入,而不是使用较旧的支持库类。
因此,替换
android.support.v4.media.app.NotificationCompat 带有这个 androidX 类 androidx.media.app.NotificationCompat。
您可以从这里进一步查看迁移指南https://developer.android.com/jetpack/androidx/migrate
【讨论】: