ConnectyCube / android-messenger-app

Chat and voice / video calling app using ConnectyCube
https://connectycube.com
Apache License 2.0
51 stars 23 forks source link

Crashed when load image on Android App #63

Closed nguyenbahung94 closed 4 years ago

nguyenbahung94 commented 4 years ago

Hi, I have an issue like this: I run one app on an android device and another on an ios device, then I'm was chatting it's oke, but when the App run on ios device sends an image, then the app runs on the android device had to crash. This issue only happened when sending an image from ios devices and loading images from the android app, the code I wrote base on your example. Log issue: 2020-06-30 11:35:03.525 16080-16221/vn.aipacific.aihealth.ai E/AndroidRuntime: FATAL EXCEPTION: pool-19-thread-1 Process: vn.aipacific.aihealth.ai, PID: 16080 java.lang.IllegalStateException: item.id must not be null at com.connectycube.messenger.utilities.ConverterWraperKt.convertToAttachment(ConverterWraper.kt:77) at com.connectycube.messenger.utilities.ConverterWraperKt.convertToListAttachment(ConverterWraper.kt:96) at com.connectycube.messenger.utilities.ConverterWraperKt.convertToListOfListMessages(ConverterWraper.kt:106) at com.connectycube.messenger.data.ChatMessageRepository$insertResultIntoDb$$inlined$let$lambda$1.run(ChatMessageRepository.kt:104) at androidx.room.RoomDatabase.runInTransaction(RoomDatabase.java:410) at com.connectycube.messenger.data.ChatMessageRepository.insertResultIntoDb(ChatMessageRepository.kt:101) at com.connectycube.messenger.data.ChatMessageRepository.access$insertResultIntoDb(ChatMessageRepository.kt:25) at com.connectycube.messenger.data.ChatMessageRepository$postsOfDialogId$boundaryCallback$1.invoke(ChatMessageRepository.kt:152) at com.connectycube.messenger.data.ChatMessageRepository$postsOfDialogId$boundaryCallback$1.invoke(ChatMessageRepository.kt:25) at com.connectycube.messenger.paging.MessageBoundaryCallback$insertItemsIntoDb$1.run(MessageBoundaryCallback.kt:74) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919)

I was debugging and find out this crash on this function, fun convertToAttachment(item: ConnectycubeAttachment, messageId: String): Attachment { return Attachment(item.id, messageId, item.type).apply { id = item.id contentType = item.contentType data = item.data duration = item.duration height = item.height width = item.width name = item.name size = item.size type = item.type url = item.url } }

nguyenbahung94 commented 4 years ago

Hi, I have an issue like this: I run one app on an android device and another on an ios device, then I'm was chatting it's oke, but when the App run on ios device sends an image, then the app runs on the android device had to crash. This issue only happened when sending an image from ios devices and loading images from the android app, the code I wrote base on your example. Log issue: 2020-06-30 11:35:03.525 16080-16221/vn.aipacific.aihealth.ai E/AndroidRuntime: FATAL EXCEPTION: pool-19-thread-1 Process: vn.aipacific.aihealth.ai, PID: 16080 java.lang.IllegalStateException: item.id must not be null at com.connectycube.messenger.utilities.ConverterWraperKt.convertToAttachment(ConverterWraper.kt:77) at com.connectycube.messenger.utilities.ConverterWraperKt.convertToListAttachment(ConverterWraper.kt:96) at com.connectycube.messenger.utilities.ConverterWraperKt.convertToListOfListMessages(ConverterWraper.kt:106) at com.connectycube.messenger.data.ChatMessageRepository$insertResultIntoDb$$inlined$let$lambda$1.run(ChatMessageRepository.kt:104) at androidx.room.RoomDatabase.runInTransaction(RoomDatabase.java:410) at com.connectycube.messenger.data.ChatMessageRepository.insertResultIntoDb(ChatMessageRepository.kt:101) at com.connectycube.messenger.data.ChatMessageRepository.access$insertResultIntoDb(ChatMessageRepository.kt:25) at com.connectycube.messenger.data.ChatMessageRepository$postsOfDialogId$boundaryCallback$1.invoke(ChatMessageRepository.kt:152) at com.connectycube.messenger.data.ChatMessageRepository$postsOfDialogId$boundaryCallback$1.invoke(ChatMessageRepository.kt:25) at com.connectycube.messenger.paging.MessageBoundaryCallback$insertItemsIntoDb$1.run(MessageBoundaryCallback.kt:74) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919)

I was debugging and find out this crash on this function, fun convertToAttachment(item: ConnectycubeAttachment, messageId: String): Attachment { return Attachment(item.id, messageId, item.type).apply { id = item.id contentType = item.contentType data = item.data duration = item.duration height = item.height width = item.width name = item.name size = item.size type = item.type url = item.url } }

I posted issue a few days ago, But I didn't see you around here, Are there anyway else I can communicate with you directly, Sometimes I need you to check on some issue asap, such as skype, telegram, slack, etc..

TatankaConCube commented 4 years ago

Error 'IllegalStateException: item.id must not be null' means you send attachment from iOS without id field. Please recheck sending attachments logic on iOS side. To better understanding your issue please provide us full log from both sides (Android and iOS) without any filters.