无法解析符号FirebaseMessagingService,Firebase Messaging版本适配问题求助
解决Firebase Messaging相关依赖与符号解析问题
看来你在集成Firebase消息推送时碰到了两个头疼的问题,我结合实际开发经验给你梳理下解决方案:
问题1:提示“can not resolve symbol FirebaseMessagingService”
这个错误大多是依赖未正确同步、版本不匹配或者代码声明有误导致的,你可以按以下步骤排查:
- 先确认你的自定义服务类是否正确继承了
com.google.firebase.messaging.FirebaseMessagingService,包名有没有写错 - 执行
File -> Sync Project with Gradle Files强制同步依赖;如果还是不行,试试Build -> Clean Project再Build -> Rebuild Project,清理编译缓存后重新构建 - 检查
AndroidManifest.xml中是否正确声明了你的服务子类,示例如下:<service android:name=".MyFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
问题2:firebase-messaging:12.0.1依赖异常,10.2.1正常
这个核心原因是版本兼容性不匹配,Firebase的版本需要和Google服务插件、Android Support库、编译SDK版本严格对应:
- 统一Google服务插件版本:
项目根目录的build.gradle中,com.google.gms:google-services插件版本必须和Firebase版本匹配。比如使用firebase-messaging:12.0.1,插件至少要升级到3.2.0:buildscript { dependencies { classpath 'com.google.gms:google-services:3.2.0' } } - 匹配编译SDK与Support库版本:
你当前使用的是26.+的Support库,而12.0.1版本的Firebase要求编译SDK至少为27,同时Support库也要同步升级到27.x版本。修改app模块的build.gradle:android { compileSdkVersion 27 defaultConfig { targetSdkVersion 27 } } dependencies { // 替换原有的Support库依赖 compile 'com.android.support:appcompat-v7:27.1.1' compile 'com.android.support:design:27.1.1' compile 'com.android.support:cardview-v7:27.1.1' // 保留正确的Firebase依赖 compile 'com.google.firebase:firebase-messaging:12.0.1' } - 额外提示:从Android Studio 3.0开始,官方推荐使用
implementation替代compile,你可以逐步替换,比如implementation 'com.google.firebase:firebase-messaging:12.0.1'
如果暂时不想升级编译SDK和Support库,那建议继续使用10.2.1版本的Firebase依赖,或者降级到和当前环境兼容的版本(比如11.8.0,它适配compileSdkVersion 26)。
内容的提问来源于stack exchange,提问作者Marriage
相关产品推荐
相关产品推荐

