React Native开发的应用在android下闪退
最近遇到个奇怪的问题,以前本来正常使用的APP(0.63.2),自从升级到0.63.3并且引用的组件全部升级。在android下经常闪退。但是ios下很正常没有任何问题。各种排除法,最后定位是隐藏的webview出现了问题。环境信息macOS Catalina 10.15.6node 14.2.0pod 1.8.4react-native 0.63.3react 16.13.1xcode 12.1
·
最近遇到个奇怪的问题,以前本来正常使用的APP(0.63.2),自从升级到0.63.3并且引用的组件全部升级。在android下经常闪退。但是ios下很正常没有任何问题。各种排除法,最后定位是隐藏的webview出现了问题。
环境信息
macOS Catalina 10.15.6
node 14.2.0
pod 1.8.4
react-native 0.63.3
react 16.13.1
xcode 12.1
解决办法
问题出现原因:
经过大量的测试,花了我一几乎一周的时间啊,把同事写的组件,和依赖的组件各种删除测试,最终才发现。原来一直在想是不是代码问题导致内存泄露了?
后来才发现:
之前为了实现一些需求,把webview组件隐藏起来(用户看不到)执行一些预加载的任务。
只要有隐藏的webview组件就会很大概率闪退。
代码结构如下:
<View>
<WebView/>
</View>
只要不给View设置任何布局,就会实现隐藏的效果,但是这种写法会导致闪退。有没有大佬知道为什么的?麻烦评论解答一下。
最终解决办法,就是不要用上面的写法,直接把webview显示出来,就没有这个问题了。不知道产生这个的原因会不会是webview组件的BUG。
修改后的写法:
<View style={{
flex: 0,
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
height: 1,
width: 1,
}}>
<WebView/>
</View>
求更好的写法!
更多推荐

所有评论(0)