cinit / cinit/QAuxiliary

[Bug] 有关发送消息的功能可能会“吞”消息

Open
#1,073 6 comments 0 reactions 0 assignees View on GitHub
Bug
Dominant language
Java
Stars
5.7k
Forks
416
Avg merge
10d 4h
Merged PRs (30d)
4

Description

### Steps to reproduce/复现步骤

使用相关功能发送消息,如: ~~表情面板~~ (未复现)、语音转发等,但不包括复读

### Expected behaviour/预期行为

发送给好友的消息不会被吞

### Actual behaviour/实际行为

消息可能会被“吞”,且需要重启 QQ 才(可能)会显示

### Xposed Framework you used/你使用的Xposed框架

NPatch 0.6.1

### Your Android version/你使用的安卓系统版本

12S

### QQ(TIM)版本/QQ(TIM) Version

9.0.0

### Module Version/模块版本

1ea3de1de51c1f46881d7be6aec390835084869b

### Version and Other Requirements/版本和其他要求

- [ ] I am using latest debug CI version of QAuxiliary and enable verbose log/我正在使用最新 CI 调试版本且启用详细日志
- [X] The QQ I am using is an official release version, not a modified or beta version/我使用的 QQ 是官方发布的正式版本,而非修改版或测试版
- [X] 我已经在 [Issue Tracker](https://github.com/cinit/QAuxiliary/issues) 中找过我要提出的问题,没有找到相同问题。重复问题会被关闭。
- [X] 我已知晓并同意,此处仅用于汇报主程序中存在的问题。若这个 Issue 是关于其他非程序本身问题,则我的 Issue 可能会被无条件自动关闭或/并锁定。
- [X] 我已知晓并同意,如果我不按照模板提供的指示进行填写,则我的 Issue 可能会被无条件删除。

### Logs/日志

调试信息


PID: 31534, UID: 10452, 64 bit
Xposed API version: 100
de.robv.android.xposed.XposedBridge
module: /data/user/0/com.tencent.mobileqq/cache/lspatch/io.github.qauxv/188446680.apk
ctx.dataDir: /data/user/0/com.tencent.mobileqq

[0]PicElement
com.tencent.mobileqq.aio.msg.AIOMsgElementType.PicElement
= (void*)0
[5]AbstractQQCustomMenuItem
com.tencent.qqnt.aio.menu.ui.AbstractQQCustomMenuItem
= Lcom/tencent/qqnt/aio/menu/ui/c;->toString()Ljava/lang/String;
[7]AIOPictureView
com.tencent.mobileqq.richmediabrowser.view.AIOPictureView
= com.tencent.mobileqq.richmediabrowser.view.AIOPictureView
[8]AIOUtils
com.tencent.mobileqq.activity.aio.AIOUtils
= Lcom/tencent/mobileqq/activity/aio/w;->O(Lcom/tencent/mobileqq/app/QQAppInterface;Lcom/tencent/mobileqq/app/BaseActivity;Landroid/content/Intent;)I
[9]AbstractGalleryScene
com.tencent.common.galleryactivity.AbstractGalleryScene
= Lcom/tencent/common/galleryactivity/c;->onStart()V
[10]AppConstants
com.tencent.mobileqq.app.AppConstants
= com.tencent.mobileqq.app.AppConstants
[11]ArkAppItemBubbleBuilder
com.tencent.mobileqq.activity.aio.item.ArkAppItemBubbleBuilder
= Lio/github/qauxv/util/DexKit$NoSuchClass;->a()V
[12]AvatarUtil
com.tencent.mobileqq.avatar.utils.AvatarUtil
= (void*)0
[13]BasePicDownloadProcessor
com.tencent.mobileqq.transfile.BasePicDownloadProcessor
= com.tencent.mobileqq.transfile.BasePicDownloadProcessor
[14]CustomWidgetUtil
com.tencent.widget.CustomWidgetUtil
= Lcom/tencent/qqnt/chats/b/h/c$a;->a(Landroid/widget/TextView;III)V
[15]DialogUtil
com.tencent.mobileqq.utils.DialogUtil
= com.tencent.mobileqq.utils.DialogUtil
[16]ChatActivityFacade
com.tencent.mobileqq.activity.ChatActivityFacade
= com.tencent.mobileqq.activity.ChatActivityFacade
[17]FaceManager
com.tencent.mobileqq.app.face.FaceManager
= (void*)0
[18]FavEmoConstant
com.tencent.mobileqq.emosm.favroaming.FavEmoConstant
= com.tencent.mobileqq.emosm.favroaming.FavEmoConstant
[19]FlashPicHelper
com.tencent.mobileqq.app.FlashPicHelper
= Lcom/tencent/mobileqq/app/an;->e(Lcom/tencent/mobileqq/data/MessageRecord;Z)V
[20]FrameControllerInjectImpl
com.tencent.mobileqq.activity.framebusiness.controllerinject.FrameControllerInjectImpl
= com.tencent.mobileqq.activity.framebusiness.controllerinject.FrameControllerInjectImpl
[21]GalleryBaseScene
com.tencent.mobileqq.gallery.view.GalleryBaseScene
= Lcom/tencent/richmediabrowser/view/BrowserBaseScene;->onItemSelected(I)V
[22]TroopAppShortcutDrawer
com.tencent.mobileqq.activity.aio.drawer.TroopAppShortcutDrawer
= com.tencent.mobileqq.activity.aio.drawer.TroopAppShortcutDrawer
[23]GuildArkHelper
com.tencent.mobileqq.guild.chatpie.helper.GuildArkHelper
= (void*)0
[24]GuildHelperProvider
com.tencent.mobileqq.guild.chatpie.GuildHelperProvider
= (void*)0
[25]HttpDownloader
com.tencent.mobileqq.transfile.HttpDownloader
= com.tencent.mobileqq.transfile.HttpDownloader
[26]IntimateInfoChatDrawer
com.tencent.mobileqq.activity.aio.drawer.IntimateInfoChatDrawer
= (void*)0
[27]ItemBuilderFactory
com.tencent.mobileqq.activity.aio.item.ItemBuilderFactory
= Lcom/tencent/mobileqq/activity/aio/core/msglist/a/a;->b(Lcom/tencent/mobileqq/data/ChatMessage;Landroid/widget/BaseAdapter;)Lcom/tencent/mobileqq/activity/aio/ai;
[28]MessageCache
com.tencent.mobileqq.service.message.MessageCache
= Lcom/tencent/mobileqq/service/h/e;->()V
[29]MessageRecordFactory
com.tencent.mobileqq.service.message.MessageRecordFactory
= Lcom/tencent/mobileqq/service/h/r;->I(Lcom/tencent/common/app/AppInterface;Lcom/tencent/mobileqq/data/MessageRecord;Ljava/lang/String;Ljava/lang/String;I)V
[30]MultiMsgManager
com.tencent.mobileqq.multimsg.MultiMsgManager
= com.tencent.mobileqq.multimsg.MultiMsgManager
[31]OnlinePushPbPushTransMsg
com.tencent.mobileqq.app.handler.receivesuccess.OnlinePushPbPushTransMsg
= (void*)0
[32]PicEmoticonInfo
com.tencent.mobileqq.emoticonview.PicEmoticonInfo
= com.tencent.mobileqq.emoticonview.PicEmoticonInfo
[33]PngFrameUtil
com.tencent.mobileqq.magicface.drawable.PngFrameUtil
= (void*)0
[34]PopOutEmoticonUtil
com.tencent.mobileqq.popanim.util.PopOutEmoticonUtil
= (void*)0
[35]MsgNotification
cooperation.qzone.push.MsgNotification
= cooperation.qzone.push.MsgNotification
[36]ReplyMsgSender
com.tencent.mobileqq.replymsg.ReplyMsgSender
= (void*)0
[37]ReplyMsgUtils
com.tencent.mobileqq.activity.aio.reply.ReplyMsgUtils
= (void*)0
[38]ScreenShotHelper
com.tencent.mobileqq.screendetect.ScreenShotHelper
= com.tencent.mobileqq.screendetect.ScreenShotHelper
[39]SimpleUIUtil
com.tencent.mobileqq.theme.SimpleUIUtil
= (void*)0
[40]SystemMessageProcessor
com.tencent.mobileqq.app.message.SystemMessageProcessor
= (void*)0
[41]TestStructMsg
com.tencent.mobileqq.structmsg.TestStructMsg
= Lcom/tencent/mobileqq/structmsg/w;->a(Ljava/lang/String;)Lcom/tencent/mobileqq/structmsg/AbsStructMsg;
[42]TimeFormatterUtils
com.tencent.mobileqq.utils.TimeFormatterUtils
= (void*)0
[43]TroopGiftUtil
com.tencent.mobileqq.troop.utils.TroopGiftUtil
= (void*)0
[44]ZipUtils
com.tencent.biz.common.util.ZipUtils
= com.tencent.biz.common.util.ZipUtils
[48]DefaultFileModel
com.tencent.mobileqq.filemanager.fileviewer.model.DefaultFileModel
= Lcom/tencent/mobileqq/filemanager/fileviewer/model/f;->u0(ILjava/lang/String;)V
[50]EmotcationConstants
com.tencent.mobileqq.text.EmotcationConstants
= com.tencent.mobileqq.text.EmotcationConstants
[51]ForwardSendPicUtil
com.tencent.mobileqq.utils.ForwardSendPicUtil
= com.tencent.mobileqq.utils.ForwardSendPicUtil
[58]

= (void*)0
[59]toBottomIntent
com.tencent.mobileqq.aio.input.multiselect.c.toBottomIntent
= Lcom/tencent/mobileqq/aio/input/multiselect/c$h;->toString()Ljava/lang/String;
[70]CustomWidgetUtil
com.tencent.widget.CustomWidgetUtil
= Lcom/tencent/widget/a;->c(Landroid/widget/TextView;IIIILjava/lang/String;Z)V
[88]

= Lcom/tencent/qqnt/pluspanel/adapter/PanelAdapter;->e(I)Ljava/util/List;
[96]

= Lcom/tencent/mobileqq/troop/troopcard/api/impl/b;->c()V
[99]LoadPropertiesUtils
com.tencent.smtt.utils.LoadPropertiesUtils
= (void*)0
[100]activity
com.tencent.qqnt.aio.activity
= Lcom/tencent/qqnt/aio/activity/AIODelegate$d;->a()V
[104]

= (void*)0
[107]

= (void*)0
[111]

= Lcom/tencent/mobileqq/activity/qqsettingme/config/a;->()V
[1]sendMsg
com.tencent.mobileqq.aio.input.sendmsg.AIOSendMsgVMDelegate.sendMsg
= Lcom/tencent/mobileqq/aio/input/sendmsg/AIOSendMsgVMDelegate;->c0(Ljava/util/List;Landroid/os/Bundle;Ljava/lang/Long;)V
[2]AIOTextElementCtor
com.tencent.mobileqq.aio.msg.AIOMsgElement.AIOTextElementCtor
= Lcom/tencent/mobileqq/aio/msg/a/a;->r(Lcom/tencent/qqnt/aio/q/a/a$g;)Lcom/tencent/mobileqq/aio/msg/a/a;
[3]AIO_Create_QQNT
AIO_Create_QQNT
= Lcom/tencent/aio/base/chat/ChatPie;->g(Landroid/os/Bundle;Lcom/tencent/aio/main/fragment/ChatFragment;Lkotlin/jvm/functions/Function1;)V
[4]

= Lcom/tencent/mobileqq/aio/input/i/b;->E(Lcom/tencent/mobileqq/aio/input/e/b/a;)V
[6]BaseListenTogetherPanel
com.tencent.mobileqq.listentogether.ui.BaseListenTogetherPanel
= Lcom/tencent/mobileqq/listentogether/ui/BaseListenTogetherPanel;->S(Lcom/tencent/mobileqq/listentogether/ListenTogetherSession;)V
[45]ChatPanel_InitPanel_QQNT
ChatPanel_InitPanel_QQNT
= Lcom/tencent/mobileqq/aio/input/i/b;->B()V
[46]

= (void*)0
[47]

= (void*)0
[49]

= (void*)0
[52]NotifyIdManager
com.tencent.util.notification.NotifyIdManager
= (void*)0
[53]Guild_Emo_Btn_Create_QQNT
Guild_Emo_Btn_Create_QQNT
= Lcom/tencent/z/a/d/a/c;->onCreateView(Lcom/tencent/t0/a/c/a;)Landroid/view/View;
[54]PickerBottomBarPart
Lcom.tencent.qqnt.qbasealbum.album.view.PickerBottomBarPart
= Lcom/tencent/qqnt/qbasealbum/album/view/PickerBottomBarPart;->W4(Lcom/tencent/qqnt/qbasealbum/album/view/PickerBottomBarPart;Ljava/lang/Boolean;)V
[55]PhotoListPanel
Lcom.tencent.mobileqq.activity.aio.photo.PhotoListPanel
= Lcom/tencent/mobileqq/activity/aio/photo/PhotoListPanel;->d0(Z)V
[56]message
com.tencent.imcore.message
= Lcom/tencent/imcore/message/ah$f;->k(Ljava/util/ArrayList;LOnlinePushPack/MsgInfo;)Z
[57]AIOFileViewer
Lcom.tencent.mobileqq.aio.msglist.holder.component.file.AIOFileViewer
= (void*)0
[60]AtPanel
com.tencent.mobileqq.troop.quickat.ui.AtPanel
= Lio/github/qauxv/util/DexKit$NoSuchClass;->a()V
[61]AtPanel
com.tencent.mobileqq.troop.quickat.ui.AtPanel
= Lio/github/qauxv/util/DexKit$NoSuchClass;->a()V
[62]BaseChatPie
com.tencent.mobileqq.activity.aio.core.BaseChatPie
= com.tencent.mobileqq.activity.aio.core.BaseChatPie
[63]BaseChatPie
com.tencent.mobileqq.activity.aio.core.BaseChatPie
= Lcom/tencent/mobileqq/activity/aio/helper/AIOMultiActionHelper;->w(Lcom/tencent/mobileqq/data/ChatMessage;)V
[64]BaseChatPie
com.tencent.mobileqq.activity.aio.core.BaseChatPie
= Lcom/tencent/mobileqq/activity/aio/core/BaseChatPie;->B0()V
[65]BaseChatPie
com.tencent.mobileqq.activity.aio.core.BaseChatPie
= com.tencent.mobileqq.activity.aio.core.BaseChatPie
[66]ChatActivityFacade
com.tencent.mobileqq.activity.ChatActivityFacade
= com.tencent.mobileqq.activity.ChatActivityFacade
[67]ContactUtils
com.tencent.mobileqq.utils.ContactUtils
= Lcom/tencent/mobileqq/utils/ContactUtils;->f(Lmqq/app/AppRuntime;Ljava/lang/String;Z)Ljava/lang/String;
[68]ContactUtils
com.tencent.mobileqq.utils.ContactUtils
= Lcom/tencent/mobileqq/utils/ContactUtils;->m(Lcom/tencent/common/app/business/BaseQQAppInterface;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
[69]Conversation
com.tencent.mobileqq.activity.home.Conversation
= com.tencent.mobileqq.activity.home.Conversation
[71]FriendChatPie
com.tencent.mobileqq.activity.aio.core.FriendChatPie
= com.tencent.mobileqq.activity.aio.core.FriendChatPie
[72]FriendsStatusUtil
com.tencent.mobileqq.app.utils.FriendsStatusUtil
= com.tencent.mobileqq.app.utils.FriendsStatusUtil
[73]LeftSwipeReplyHelper
com.tencent.mobileqq.bubble.LeftSwipeReplyHelper
= Lcom/tencent/mobileqq/bubble/i;->M()V
[74]PadUtil
com.tencent.common.config.PadUtil
= (void*)0
[75]PhotoListPanel
com.tencent.mobileqq.activity.aio.photo.PhotoListPanel
= com.tencent.mobileqq.activity.aio.photo.PhotoListPanel
[76]ProfileCardUtil
com.tencent.mobileqq.util.ProfileCardUtil
= com.tencent.mobileqq.util.ProfileCardUtil
[77]QQSettingMe
com.tencent.mobileqq.activity.QQSettingMe
= Lcom/tencent/mobileqq/QQSettingMeView;->q()V
[78]QQSettingMe
com.tencent.mobileqq.activity.QQSettingMe
= Lcom/tencent/mobileqq/QQSettingMeView;->O(Lcom/tencent/mobileqq/activity/qqsettingme/a/k;)V
[79]

= Lcom/qzone/reborn/qzmoment/util/g;->d()Z
[80]Scene
com.tencent.mobileqq.troopAddFrd.Scene
= (void*)0
[81]TroopAppShortcutBarHelper
com.tencent.mobileqq.activity.aio.helper.TroopAppShortcutBarHelper
= (void*)0
[82]TroopChatPie
com.tencent.mobileqq.activity.aio.core.TroopChatPie
= com.tencent.mobileqq.activity.aio.core.TroopChatPie
[83]VasProfileTemplateController
com.tencent.mobileqq.profilecard.vas.VasProfileTemplateController
= Lcom/tencent/mobileqq/profilecard/vas/VasProfileTemplateController;->onCardUpdate(Lcom/tencent/mobileqq/profilecard/base/framework/IComponentCenter;Lcom/tencent/mobileqq/profilecard/data/ProfileCardInfo;)Z
[84]VipUtils
com.tencent.mobileqq.utils.VipUtils
= Lcom/tencent/mobileqq/vip/p;->getPrivilegeFlags(Ljava/lang/String;)I
[85]VipUtils
com.tencent.mobileqq.utils.VipUtils
= (void*)0
[86]WebSecurityPluginV2$
com.tencent.mobileqq.webview.WebSecurityPluginV2$
= (void*)0
[87]PaiYiPaiHandler
com.tencent.mobileqq.paiyipai.PaiYiPaiHandler
= Lcom/tencent/mobileqq/paiyipai/PaiYiPaiHandler;->p4(Ljava/lang/String;)Z
[89]PushNotificationManager
com.tencent.mobileqq.managers.PushNotificationManager
= com.tencent.mobileqq.managers.PushNotificationManager
[90]QQValuePagView
com.tencent.mobileqq.vas.qqvaluecard.view.QQValuePagView
= com.tencent.mobileqq.vas.qqvaluecard.view.QQValuePagView
[91]QZoneFeedxTopEntranceManagerView
com.qzone.reborn.feedx.widget.entrance.QZoneFeedxTopEntranceManagerView
= Lcom/qzone/reborn/feedx/widget/entrance/QZoneFeedxTopEntranceManagerView;->g0()V
[92]

= Lcom/tencent/mobileqq/activity/recent/l$a;->onClickAction(Lcom/tencent/widget/PopupMenuDialog$MenuItem;)V
[93]

= Lcom/tencent/mobileqq/aio/input/h/k;->p(Lcom/tencent/mobileqq/aio/msg/AIOMsgItem;)V
[94]

= (void*)0
[95]TroopGuildChatPie
com.tencent.mobileqq.troop.guild.TroopGuildChatPie
= Lcom/tencent/mobileqq/troop/guild/TroopGuildChatPie;->R0()V
[97]

= (void*)0
[98]p
com.tencent.mobileqq.vas.p
= Lcom/tencent/mobileqq/vas/q;->a(Ljava/util/HashMap;Lcom/tencent/qqnt/kernel/nativeinterface/Contact;I)V
[101]AIO_Create_QQNT
AIO_Create_QQNT
= Lcom/tencent/aio/base/chat/ChatPie;->h()V
[102]

= Lcom/tencent/mobileqq/emotionintegrate/m;->c()Z
[103]

= Lcom/tencent/mobileqq/filebrowser/FileBrowserActivity$f;->onItemClick(Lcom/tencent/mobileqq/utils/ShareActionSheetBuilder$ActionSheetItem;Lcom/tencent/mobileqq/widget/share/ShareActionSheet;)V
[105]GrowHalfLayerHelper
cooperation.vip.ad.GrowHalfLayerHelper
= Lcooperation/vip/ad/GrowHalfLayerUtils;->h(Landroid/app/Activity;Lcooperation/vip/ad/GrowHalfLayerInfo;Lcooperation/vip/ad/GrowHalfLayerTechInfo;)V
[106]

= Lcom/tencent/mobileqq/app/ci;->onUpdate(IZLjava/lang/Object;)V
[108]

= Lcom/tencent/mobileqq/activity/qqsettingme/utils/a;->f()Z
[109]

= Lio/github/qauxv/util/DexKit$NoSuchClass;->a()V
[110]

= Lcom/tencent/mobileqq/activity/qqsettingme/utils/a;->g()Z
[112]AIOAvatarContentComponent
com.tencent.mobileqq.aio.msglist.holder.component.avatar.AIOAvatarContentComponent
= Lcom/tencent/mobileqq/aio/msglist/holder/component/avatar/AIOAvatarContentComponent;->X0()V
[113]AIOPictureView
com.tencent.mobileqq.activity.aio.photo.AIOPictureView
= Lcom/tencent/mobileqq/richmediabrowser/view/AIOPictureView;->T0()V
[114]AIOPictureView
com.tencent.mobileqq.activity.aio.photo.AIOPictureView
= Lcom/tencent/mobileqq/richmediabrowser/view/AIOPictureView;->j1(Z)V
[115]TextItemBuilder
com.tencent.mobileqq.activity.aio.item.TextItemBuilder
= com.tencent.mobileqq.activity.aio.item.TextItemBuilder
[116]TextMsgItem
com.tencent.mobileqq.aio.msg.TextMsgItem
= Lcom/tencent/mobileqq/aio/msg/z;->F1()Ljava/lang/CharSequence;
[40001]ReplyNoAtHook
com/tencent/mobileqq/activity/aio/rebuild/input/d
[40002]ChatWordsCount
nyn
[40003]SortAtPanel.sessionInfoTroopUin
f
[40004]RemovePlayTogether.ClockInEntryHelper
n
[40005]QQMessageFacade
B2
[40006]SimplifyQQSettingMe::MidContentName
f0
[40007]RemovePlayTogether.TogetherControlHelper
q

### 补充说明(可选)

据相关议题 https://github.com/LuckyPray/XAutoDaily/issues/95 (已解决)所述,此问题是 QQNT 的通病
也许应该通过更换 API 来规避

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the report with the listed QQ, Android, NPatch, and module versions, while tracing AIOSendMsgVMDelegate.sendMsg and the com.tencent.imcore.message handler entries in the supplied log. Compare sending forwarded voice or other messages with the message-list and restart behavior; done means identifying a reproducible cause and confirming that sent messages remain visible without restarting QQ.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.