无法使用 FCM 解析 Android 通知的符号“NotificationChannel”
Posted
技术标签:
【中文标题】无法使用 FCM 解析 Android 通知的符号“NotificationChannel”【英文标题】:Cannot resolve symbol 'NotificationChannel' for Android notifications using FCM 【发布时间】:2017-11-23 00:51:16 【问题描述】:我正在尝试在 android 上设置 Firebase 云消息传递客户端应用。我使用https://github.com/firebase/quickstart-android/tree/master/messaging 作为我的实施指南或模板。当我尝试在https://github.com/firebase/quickstart-android/blob/master/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/MainActivity.java 编写代码时,我在以下行中看到Cannot resolve symbol 'NotificationChannel'
错误:
import android.app.NotificationChannel;
您对为什么NotificationChannel
可能无法识别有任何想法吗?谢谢。
【问题讨论】:
您在 gradle 文件中使用的是什么 SDK 版本?应该是 26 我正在使用android:targetSdkVersion="23"
。是因为我需要 API Level 26 吗?我正在查看developer.android.com/reference/android/app/… 和NotificationChannel
,上面写着:added in API level 26
。
目标无关紧要...编译SDK可以
你在哪里定义的?这是我在AndroidManifest.xml
文件中的内容:<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
我需要将 minSdkVersion 更改为 26 吗?
我找到了。我在我的build.gradle
中使用compileSdkVersion 23
。谢谢。
【参考方案1】:
NotificationChannel is added in API 26
要获得这个类,compileSdkVersion 需要至少是那个版本。
检查 build.gradle
【讨论】:
嗨 cricket_007,我在build.gradle
中使用 compileSdkVersion 'Google Inc.:Google APIs:24'
,所以不能使用 compileSdkVersion 26
。还有其他解决办法吗??
其实我用的是com.google.android.maps.
,为此我需要添加compileSdkVersion 'Google Inc.:Google APIs:24'
同样,该类仅在版本 26 及更高版本中可用,因此我猜它需要是 'Google Inc.:Google APIs:26'
。虽然没有测试过
我不明白为什么不会,但你的问题与地图无关developer.android.com/reference/android/app/NotificationChannel
问题是,在我的项目中com.google.android.maps
和com.google.android.gms.maps
都实现了。对于com.google.android.maps
,我需要使用compileSdkVersion 'Google Inc.:Google APIs:24'
,因为Google APIs:24
是地图v1的最新版本,所以不能使用Google APIs:26
或compileSdkVersion 26
来使用NotificationChannel。请建议我该怎么做?以上是关于无法使用 FCM 解析 Android 通知的符号“NotificationChannel”的主要内容,如果未能解决你的问题,请参考以下文章
使用 FCM 解析部署在 Amazon EC2 Android 通知上的服务器
FCM - 如何修复 android.app.RemoteServiceException:从包发布的错误通知无法扩展 RemoteViews:StatusBarNotification