You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成ZEGOCLOUD一对一语音通话时遇background样式属性无效错误

React Native集成ZEGOCLOUD一对一语音通话报错:"background"不是有效样式属性

我在React Native中实现ZEGOCLOUD一对一语音通话功能时出现如下错误:

Error: Requiring module "node_modules@zegocloud\zego-uikit-prebuilt-call-rn\lib\commonjs\index.js", which threw an exception: Invariant Violation: "background" is not a valid style property.

我已检查node_modules,未找到audioVideoViewSubContainer样式,且执行过gradle清理和npm缓存重置操作。以下是CallScreen的代码:

import React, {useRef} from 'react';

import {StyleSheet, View, Text, Button} from 'react-native';
import {
  ZegoUIKitPrebuiltCall,
  ONE_ON_ONE_VIDEO_CALL_CONFIG,
  GROUP_VOICE_CALL_CONFIG,
  ONE_ON_ONE_VOICE_CALL_CONFIG,
} from '@zegocloud/zego-uikit-prebuilt-call-rn';
import {AppId, AppSignIn} from '../../constants';
export default function CallScreen(props) {
  const prebuiltRef = useRef();
  const {route} = props;
  const {params} = route;
  const {userID, userName} = params;

  return (
    <View style={styles.container}>
      <ZegoUIKitPrebuiltCall
        ref={prebuiltRef}
        appID={AppId}
        appSign={AppSignIn}
        userID={userID}
        userName={userName}
        callID="rn12345678"
        config={{
          ...ONE_ON_ONE_VOICE_CALL_CONFIG,
          // ...ONE_ON_ONE_VIDEO_CALL_CONFIG,
          onHangUp: () => {
            console.log('########CallPage onHangUp');
            props.navigation.navigate('HomeScreen');
          },
          durationConfig: {
            isVisible: true,
            onDurationUpdate: duration => {
              console.log('########CallPage onDurationUpdate', duration);
              if (duration === 5) {
                prebuiltRef.current.hangUp();
              }
            },
          },
        }}
      />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
    zIndex: 0,
  },
});

错误截图:
错误截图

React Native Doctor结果:

Common
 ✓ Node.js
 ✓ npm

Android
 ✓ JDK
 ✓ Android Studio - Required for building and installing your app on Android
 ✓ Android SDK - Required for building and installing your app on Android
 ✓ ANDROID_HOME

Errors:   0
Warnings: 0

React Native Info:

info Fetching system and libraries information...
System:
    OS: Windows 10 10.0.19045
    CPU: (4) x64 Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
    Memory: 6.04 GB / 15.87 GB
  Binaries:
    Node: 16.17.1 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - C:\Program Files\nodejs\yarn.CMD
    npm: 9.6.6 - C:\Program Files\nodejs\npm.CMD
    Watchman: 20220320.140531.0 - C:\ProgramData\chocolatey\bin\watchman.EXE
  SDKs:
    Android SDK:
      API Levels: 23, 25, 28, 29, 30, 31, 32, 33
      Build Tools: 28.0.3, 29.0.2, 29.0.3, 30.0.0, 30.0.1, 30.0.2, 30.0.3, 31.0.0, 32.0.0, 32.1.0, 33.0.0
      System Images: android-28 | Google APIs Intel x86 Atom_64, android-29 | Intel x86 Atom_64, android-29 | Google APIs Intel x86 Atom_64, android-30 | Intel x86 Atom_64, android-30 | Google Play Intel x86 Atom
      Android NDK: Not Found
    Windows SDK: Not Found
  IDEs:
    Android Studio: AI-213.7172.25.2113.9123335
    Visual Studio: Not Found
  Languages:
    Java: 15.0.2
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.1 => 17.0.1
    react-native: 0.64.2 => 0.64.2
    react-native-windows: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

解决方案

1. 降级ZEGOCLOUD UIKit版本

你的React Native版本(0.64.2)较为老旧,当前使用的@zegocloud/zego-uikit-prebuilt-call-rn版本可能引入了RN旧版本不支持的样式属性(比如Web端的background,RN中标准属性为backgroundColor)。

尝试安装兼容RN 0.6x的旧版本,例如:

npm install @zegocloud/zego-uikit-prebuilt-call-rn@2.1.0

具体兼容版本可参考ZEGOCLOUD官方文档或npm仓库的版本历史。

2. 自定义UI样式覆盖错误属性

如果不想降级,可以通过组件的customUIConfig参数,手动覆盖有问题的样式,将background替换为RN支持的backgroundColor:

config={{
  ...ONE_ON_ONE_VOICE_CALL_CONFIG,
  onHangUp: () => {
    console.log('########CallPage onHangUp');
    props.navigation.navigate('HomeScreen');
  },
  durationConfig: {
    isVisible: true,
    onDurationUpdate: duration => {
      console.log('########CallPage onDurationUpdate', duration);
      if (duration === 5) {
        prebuiltRef.current.hangUp();
      }
    },
  },
  customUIConfig: {
    // 找到对应使用了background的组件样式名,替换为backgroundColor
    audioVideoViewSubContainer: {
      backgroundColor: '#000000', // 替换为你需要的背景色
      // 其他样式属性
    }
  }
}}

如果找不到audioVideoViewSubContainer,可查看ZEGOCLOUD官方文档中customUIConfig的可用配置项,定位对应的容器样式。

3. 升级React Native版本(谨慎操作)

如果项目允许,将React Native升级到0.68及以上版本,新版本对第三方库的兼容性更好。但升级可能会带来其他依赖的适配问题,需要做好全面测试。

内容的提问来源于stack exchange,提问作者Ali Hassan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 00:07:13