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

React Native同时集成Reanimated与MMKV的getJSIModulePackage冲突问题

React Native 同时集成react-native-reanimated与MMKV冲突解决方案

问题本质是getJSIModulePackage方法仅支持返回单个JSIModulePackage实例,无法直接返回两个库的配置,可通过自定义合并类解决:

步骤1:添加自定义合并JSIModule类

在MainApplication.java文件内部新增如下静态类,同时注意顶部引入对应依赖包:

// 顶部需引入的依赖(请根据你的库实际版本调整包路径)
import com.facebook.react.bridge.JSIModulePackage;
import com.facebook.react.bridge.JSIModuleSpec;
import com.facebook.react.bridge.JavaScriptContextHolder;
import com.facebook.react.bridge.ReactApplicationContext;
import com.swmansion.reanimated.ReanimatedJSIModulePackage;
import com.reactnativemmkv.RNMMKVJSIModulePackage;
import java.util.List;

private static class CombinedJSIModulePackage implements JSIModulePackage {
  @Override
  public List<JSIModuleSpec> getJSIModules(ReactApplicationContext reactApplicationContext, JavaScriptContextHolder jsContext) {
    // 先加载Reanimated的JSIModule
    List<JSIModuleSpec> modules = new ReanimatedJSIModulePackage().getJSIModules(reactApplicationContext, jsContext);
    // 追加MMKV的JSIModule
    modules.addAll(new RNMMKVJSIModulePackage().getJSIModules(reactApplicationContext, jsContext));
    return modules;
  }
}

步骤2:替换原有getJSIModulePackage方法

将原有的两个冲突的getJSIModulePackage方法删除,替换为以下代码:

@Override
protected JSIModulePackage getJSIModulePackage() {
  return new CombinedJSIModulePackage();
}

验证生效

修改完成后清理Android项目缓存重新编译即可:

cd android && ./gradlew clean
cd .. && npx react-native run-android

注意:如果你使用的是Reanimated 3.x及以上版本,部分版本已默认自动集成JSIModule,无需手动添加该配置,可先对应版本官方安装说明确认是否需要保留该配置。

内容的提问来源于stack exchange,提问作者Mohib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:57:00