Android Studio实现华为Push通知时无法解析HmsMessageService符号问题
HmsMessageService类无法解析报错解决指南
已明确的前置条件
- 开发目标为华为设备的推送通知功能
- 已安装5.2.0.3000版本的hmstoolkitsdk-tool
- 编写自定义推送服务类时触发
Cannot resolve symbol 'HmsMessageService'报错,对应代码示例如下:
public class MyPushService extends HmsMessageService { private static final String TAG = "PushDemoLog"; @Override public void onNewToken(String token) { super.onNewToken(token); Log.i(TAG, "receive token:" + token); } }
问题排查与解决步骤
1. 核查Push Kit专属依赖配置
仅安装HMS Toolkit工具、添加HMS总SDK依赖,不会自动引入Push模块的类文件,必须单独声明Push对应依赖:
- 确认项目级
build.gradle的allprojects > repositories块中已正确配置华为Maven仓库地址,无拼写错误 - 确认应用模块级
build.gradle的dependencies块中,已添加与当前SDK版本匹配的Push专属依赖,依赖格式为:implementation 'com.huawei.hms:push:对应版本号'
注意:依赖版本必须和当前安装的hmstoolkitsdk-tool版本对齐,不可使用无版本号的写法,也不能引入跨大版本的不兼容依赖
2. 完成Gradle全量同步
依赖修改完成后,必须执行全量同步操作才能让IDE加载到对应类文件:
- 点击Android Studio顶部工具栏的
Sync Project with Gradle Files按钮,等待同步流程完全结束 - 若同步过程报错,需检查网络连通性,确认华为Maven仓库可正常访问,未被网络策略拦截
3. 核查模块依赖范围
- 确认编写
MyPushService类所属的模块,已经直接声明了上述Push依赖,不存在跨模块漏配问题(比如依赖仅配置在app模块,但自定义服务类写在引入的library模块中,而library模块未单独声明Push依赖)
4. 清除IDE缓存重试
若以上配置全部正确仍存在报错,执行如下操作:
- 打开Android Studio顶部菜单栏的
File > Invalidate Caches / Restart - 选择清除全部缓存后重启IDE,重新等待Gradle同步完成后检查报错是否消失
内容的提问来源于stack exchange,提问作者Manuel Rodrigues
相关产品推荐
相关产品推荐

