You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Java NativeModule依赖问题:WearOS通信类无法解析

问题:React Native Android端无法解析WearOS相关依赖导入

无法解析以下导入语句:

//import android.support.annotation.Nullable;
//import com.google.android.gms.common.api.GoogleApiClient;
//import com.google.android.gms.wearable.MessageApi;
//import com.google.android.gms.wearable.MessageEvent;
//import com.google.android.gms.wearable.Node;
//import com.google.android.gms.wearable.Wearable;

已添加的依赖配置:

implementation("androidx.annotation:annotation:1.7.1")
implementation("com.google.android.gms:play-services-wearable:18.1.0")
implementation("com.google.android.gms:play-services-all-wear:15.0.1")
implementation("com.google.android.gms:play-services-base:18.3.0")

补充说明:ReactContextBaseJavaModule已实现Android与React Native双向通信;WearOS项目为Kotlin编写,可向手机端发送消息,但缺少监听响应功能。


解决方案

1. 移除冲突依赖并统一版本

  • 删除implementation("com.google.android.gms:play-services-all-wear:15.0.1"),该依赖是旧版本全包,与play-services-wearable:18.1.0存在版本冲突,且当前官方推荐直接使用play-services-wearable即可覆盖所需功能
  • 将play-services-base版本调整为与play-services-wearable一致(如18.1.0),避免版本不一致导致的类加载异常,调整后的依赖如下:
    implementation("androidx.annotation:annotation:1.7.1")
    implementation("com.google.android.gms:play-services-wearable:18.1.0")
    implementation("com.google.android.gms:play-services-base:18.1.0")
    

2. 替换过时的导入路径

  • 将android.support.annotation.Nullable替换为AndroidX版本:
    import androidx.annotation.Nullable;
    
  • GoogleApiClient是旧版API,已被新的客户端API替代,推荐使用Wearable.getMessageClient(context)获取客户端实例,替代原MessageApi的功能,相关类导入调整为:
    import com.google.android.gms.wearable.MessageClient;
    import com.google.android.gms.wearable.MessageEvent;
    import com.google.android.gms.wearable.Node;
    import com.google.android.gms.wearable.Wearable;
    

3. 同步Gradle并清理项目

  • 执行Android Studio的File -> Sync Project with Gradle Files完成依赖同步
  • 执行命令清理缓存并重新构建:
    ./gradlew clean
    ./gradlew build --refresh-dependencies
    

4. 确认依赖添加位置

确保依赖是添加在app模块的build.gradle文件中,而非项目根目录的build.gradle

5. WearOS端实现消息监听(Kotlin)

在WearOS的Kotlin代码中,通过注册MessageClient.OnMessageReceivedListener实现消息监听,示例代码:

import com.google.android.gms.wearable.MessageClient
import com.google.android.gms.wearable.MessageEvent
import com.google.android.gms.wearable.Wearable
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner

// 获取MessageClient实例
val messageClient = Wearable.getMessageClient(applicationContext)

// 定义消息监听器
val messageListener = object : MessageClient.OnMessageReceivedListener {
    override fun onMessageReceived(messageEvent: MessageEvent) {
        // 处理收到的消息,比如解析路径和内容
        val path = messageEvent.path
        val message = String(messageEvent.data)
        // 执行后续业务逻辑
    }
}

// 绑定生命周期自动注册/移除监听
lifecycle.addObserver(object : DefaultLifecycleObserver {
    override fun onResume(owner: LifecycleOwner) {
        super.onResume(owner)
        messageClient.addListener(messageListener)
    }

    override fun onPause(owner: LifecycleOwner) {
        super.onPause(owner)
        messageClient.removeListener(messageListener)
    }
})

内容的提问来源于stack exchange,提问作者chris.middleton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:53:14