由于期间只是升级了下RN的版本,所以去源码翻了翻。
public static ModuleSpec nativeModuleSpec(
Class<? extends NativeModule> type, Provider<? extends NativeModule> provider) {
return new ModuleSpec(type, provider);
}
private ModuleSpec(
@Nullable Class<? extends NativeModule> type, Provider<? extends NativeModule> provider) {
mType = type;
mProvider = provider;
}
发现官方对原本直接放开的公开类做了个封装。那么解决就很简单了。把原本的引用方式改为官方封装完之后的公开使用方式即可
旧版
new ModuleSpec(WebSocketModule.class, new Provider<NativeModule>() {
@Override
public NativeModule get() {
return new WebSocketModule(context);
}
}));
把new ModuleSpec统统改成
ModuleSpec.nativeModuleSpec(WebSocketModule.class, new Provider<NativeModule>() {
@Override
public NativeModule get() {
return new WebSocketModule(context);
}
}));
即可。