You need to enable JavaScript to run this app. Android Studio实现华为Push通知时无法解析HmsMessageService符号问题
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 04:27:02