Closed pinkelf closed 7 years ago
这边尝试一下RN看看
ReactApplication 只是一个Interface,而且没有找到强转的代码。
强转的代码在ReactActivityDelegate里面。官方的注释里说,可以通过override这个类,去回避这种情况。。。我还在试
我是在react-native的代码全文搜索的,没找到
override完了,是这个样子。简单测试了一下,是ok的。 如果还有人遇到有相同的问题,这样子处理一下,就不用去继承ReactApplication接口了。 忘记说了,我的RN版本是0.36,ReactApplication是在0.29版本以后引入的。
public class BaseReactActivityDelegate extends ReactActivityDelegate { /* * 重写getReactNativeHost,使用静态变量,修复不能使用ReactApplication的问题 * @return / @Override protected ReactNativeHost getReactNativeHost() { return BaseReactHost.get(); } }
能详细说一下怎么解决的吗?
继承ReactActivity,重写createReactActivityDelegate 方法就可以了
Tinker这边并没有直接继承自Application的逻辑,自己测试的结果,如果使用Application的话,会有不定的crash。 但是在React Native中,需要Application去继承ReactApplication接口。在RN源码中,有如下的代码: return ((ReactApplication)this.getPlainActivity().getApplication()).getReactNativeHost(); 通过Activity获得Application,然后强行转型为ReactApplication。
请问一下,同时集成Tinker和React Native的话,该怎么解决这个问题呢?Tecent自己有遇到这种情况吗?