React-Native New Bridge

最新的提交在 2016/07/14 的时候,c89c25f27d115c1928104b06dbe6eabf005995a6 把 New Bridge 切换成默认的了,测试下来看,已经没有问题了。

至于 New Bridge 和 Old Bridge 的区别,网上并没有太多的资料,还需要从代码层面去了解。


从提交记录来看,在 2016-05-19 的时候,代码里面提交了一份儿新的代码,xreact,提交的 log 里面写的是『Move more new bridge code into OSS』

然后在 2016-07-01 的时候,提交了一个改动是『Make the new bridge the default』

不过我测试下来,貌似 new bridge 还是有些问题

Didn't find class "com.facebook.jni.IteratorHelper" on path: DexPathList[[zip file "/data/app/com.facebook.react.uiapp-2/base.apk"],nativeLibraryDirectories=[/data/app/com.facebook.react.uiapp-2/lib/x86, /data/app/com.facebook.react.uiapp-2/base.apk!/lib/x86, /vendor/lib, /system/lib]]
findClass
    BaseDexClassLoader.java:56
loadClass
    ClassLoader.java:511
loadClass
    ClassLoader.java:469
initHybrid
    ModuleRegistryHolder.java:-2
<init>
    ModuleRegistryHolder.java:26
getModuleRegistryHolder
    NativeModuleRegistry.java:63
<init>
    CatalystInstanceImpl.java:106
<init>
    CatalystInstanceImpl.java:50
build
    CatalystInstanceImpl.java:484
createReactContext
    XReactInstanceManagerImpl.java:860
access$600
    XReactInstanceManagerImpl.java:103
doInBackground
    XReactInstanceManagerImpl.java:203
doInBackground
    XReactInstanceManagerImpl.java:182
call
    AsyncTask.java:295
run
    FutureTask.java:237
run
    AsyncTask.java:234
runWorker
    ThreadPoolExecutor.java:1113
run
    ThreadPoolExecutor.java:588
run
    Thread.java:818

从报错的内容来看,看样子有些代码 fb 还没有开源出来,这个目录里面少了一些东西:ReactAndroid/src/main/java/com/facebook/jni,所以还需要继续等待后续的情况。

如果想要继续让 UIExplorer 运行的话,需要修改一下 ReactNativeHost.java 里面 createReactInstanceManager 的方法,调用一下 setUseOldBridge(true) 即可。


看到今天的一个版本提交,果真把bridge切换到旧的版本了

推荐阅读更多精彩内容