ReactNative 打的release包闪退之——undefined is not an object (evaluating 'a.View.propTypes.style')?

写在前面:

这个问题巨坑一个,足足花了我2天时间。


现象描述:

使用react-native run-android 命令打的包能正常安装在模拟器上运行,一切都是那么的平静。然而,我使用gradlew assembleRelease命令打出的生产包,编译都ok,已安装到手机上(android)启动时就崩了,使用手机连上androidStudio后,看到报的日志是undefined is not an object (evaluating ‘a.View.propTypes.style’)(或者是XXX.View.propTypes.style’)
这里写图片描述


代码示例:

export default class Header extends Component {
    static propTypes = {
        style: View.propTypes.style,//看到了吗?就是这句,一个公共组件,一不小心混了一个这东西,太坑了
        title: PropTypes.string,
        showGoBack: PropTypes.bool,
        onBack: PropTypes.func,
        titleStyle: PropTypes.object,
        rightTitle: PropTypes.string,
        onRight: PropTypes.func,
        rightIcon: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
        renderRightItem: PropTypes.func
    }

解决方案:

在文件中引入PropTypes

import PropTypes from 'prop-types';

将所有

View.propTypes.XXX

换成

PropTypes.XXX

这就就ok了!!!!


总结:

如果遇到APP崩溃的情况,一定要看日志(android就用androidStudio,不会使用的去简单学一下就行了,很简单),这样才能精确定位到问题,对症下药。


为了能及时的将自己踩到的前端坑分享给大家,以后会逐渐将文章转移到微信公众号:前端e家(front_e_family)。可直接扫码关注,公众号会不定期更新新文章,分享踩坑笔记!期待您的关注!
这里写图片描述

猜你喜欢

转载自blog.csdn.net/li11_/article/details/81591352