React Native App仅在发行版android 7.0上崩溃

时间:2019-02-18 05:35:28

标签: javascript android react-native react-native-android

我一直在构建此React本机应用程序,并且它已在所有模拟器上以调试和发布模式完美运行。

但是,当我开始在设备上进行测试时,只有android 7.0设备会遇到与应用程序不一致的崩溃。它不仅会在启动时崩溃,有时还会在崩溃之前等待图像加载。有时,当我在登录期间输入文本字段时,它会崩溃。

这里最大的问题是调试期间不会抛出任何错误。

我尝试跑步 adb logcat *:S ReactNative:V ReactNativeJS:V

但没有错误抛出在那里。

使用 adb logcat *:E 我得到的唯一错误是: Error from logcat 包含所有内容的组件的渲染功能:

render() {
    if(!this.state.merchants || this.state.merchants.length == 0)
    {
        return <View style={{flex: 1,width: '100%', justifyContent:'center', alignItems: 'center', backgroundColor: Colors.themeBackground}}>
            <Text style={{fontFamily: 'avenir-medium', width:'60%', color: 'gray', fontSize: 26, textAlign: 'center'}}>
                Connection Error. Please check your connection and refresh!
            </Text>
        </View>
    }

    return (
        <View style={{ backgroundColor: Colors.themeBackground, flex: 1 }}>
            <FlatList
                data={this.state.merchants}
                extraData={this.state.refresh}
                renderItem={({ item }) => <MerchantListItem merchant={item} onItemPress={()=>{
                    this.props.navigation.navigate('merchantDetail',{merchant: item})
                }}/>}
                keyExtractor={(item) => {
                    return `${item.id}`
                }}
            />
        </View>
    )
}

和商家列表项:

class MerchantListItem extends React.PureComponent {
constructor(props) {
    super(props);        
}

render() {        
    let merchant = this.props.merchant
    if(!merchant)
    {
        return <View/>
    }

    let name = merchant.name || ''
    let address = merchant.address_summary || ''
    let price = merchant.price || ''
    let id = merchant.id || ''
    let image_uri = `${NetworkManager.domain}/GetImageForMerchant/${id}`
    // console.log(image_uri)



    return <View style={styles.merchantListItemContainerView}>
        <TouchableOpacity style={{flex: 1}} onPress={()=>{
            if(this.props.onItemPress)
            {
                this.props.onItemPress()
            }
        }}>
            <View style={{flex: 1, backgroundColor: 'black', alignItems: 'center', justifyContent: 'center'}}>
                <Image source={{uri: image_uri}} style={{width: '100%', height: '100%', position: 'absolute', opacity: 0.4}}></Image>
                {/* <Image source={require('../../assets/Images/DiscountImages/0.jpg')} style={{flex: 1, position: 'absolute', opacity: 0.5}}/> */}
                <View style={{flex: 1, position: 'absolute'}}>
                    <Text style={styles.merchantListItemText}>
                        {name}
                    </Text>
                    <Text style={styles.merchantListItemSubText}>
                        {address}
                    </Text>
                    <Text style={styles.merchantListItemSubText}>
                        {price}
                    </Text> 
                </View>                    
            </View>
        </TouchableOpacity>

    </View>
}

}

0 个答案:

没有答案