React Native 天才聊天仅在 Android 上在模拟器和设备上崩溃,在 iOS 上运行良好

React Native gifted chat crashing on both emulator and device only on Android, works fine in iOS

我正在尝试让 Gifted Chat 在 Android 上运行,但我尝试过的所有方法都不起作用。 The documentation is here.。它说在文档末尾附近有一些 Android-related 问题,但它们都是建议,而不是要求。 (无论如何,我都试过了)。

我的Android清单有以下内容:

  android:name=".MainActivity"
  android:label="@string/app_name"
  android:windowSoftInputMode="adjustResize"
  android:configChanges="keyboard|keyboardHidden|orientation|screenSize">

我已经升级到最新版本,我正在使用他们提供的下面的代码示例来尝试找出可能出错的地方(不是我自己的代码,它可能有额外的 dependencies/unrelated 错误)

import React, { useState, useCallback, useEffect } from 'react'
import { GiftedChat } from 'react-native-gifted-chat'

export function Example() {
  const [messages, setMessages] = useState([]);

  useEffect(() => {
    setMessages([
      {
        _id: 1,
        text: 'Hello developer',
        createdAt: new Date(),
        user: {
          _id: 2,
          name: 'React Native',
          avatar: 'https://placeimg.com/140/140/any',
        },
      },
    ])
  }, [])

  const onSend = useCallback((messages = []) => {
    setMessages(previousMessages => GiftedChat.append(previousMessages, messages))
  }, [])

  return (
    <GiftedChat
      messages={messages}
      onSend={messages => onSend(messages)}
      user={{
        _id: 1,
      }}
    />
  )
}

我没有看到任何错误消息,每次我导航到带有 Gifted 聊天的屏幕时,应用程序都会崩溃。正如问题标题中所说,它只发生在 Android(模拟器和设备)上,并且在 iOS.

上运行良好

想知道是否其他人 运行 遇到了同样的问题并且有快速解决方法。

谢谢。

解决方案可能是您没有在代码中包含 renderAvatar。查看 GitHub 存储库,我发现了一个问题,如果未提供,GiftedChat 无法在 android 上工作。下面是一个例子来说明我的意思:

<GiftedChat
messages={messages}
onSend={(messages) => onSend(messages)}
user={{
_id: 1,
}}

renderAvatar={renderAvatar} (if I remove this line it will crash after 2,3 seconds)
/>