2***@qq.com
2***@qq.com
  • 发布:2025-09-09 22:52
  • 更新:2025-09-09 22:56
  • 阅读:21

【报Bug】nvue-app 使用livePusher插件时的页面使用rich-text 动态绑定带图片的nodes时 死循环

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win764 专业版 sp1

HBuilderX类型: 正式

HBuilderX版本号: 4.45

手机系统: Android

手机系统版本号: Android 15

手机厂商: OPPO

手机机型: V90P00

页面类型: nvue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<live-pusher id='livePusher' ref="livePusher" class="livePusher" :url="livepushurl" mode="RTC" :muted="muted"

enable-camera="true" :auto-focus="false" :beauty="beauty" :whiteness="whiteness" aspect="1:1" @statechange="statechange" @netstatus="netstatus" @error="error" @click="resetInput"></live-pusher>

<div class="scrollBar" v-if="showMessage" >
<scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y" @scrolltoupper="upper"
@scrolltolower="lower" @scroll="scroll" >
<view v-for="(m,index) in messagelist" @click="resetInput">
<view class="content" >
<!-- 用户昵称 -->
<text v-if="m.userid!=''" class="nickname">{{m.nickname}}</text>
<view class="content-item" >
<text v-if="m.nodes==null" class="text" > {{m.content}}</text>
<rich-text v-else :nodes="m.nodes"></rich-text>
</view> <!--item -->

          </view><!-- content -->  

        </view><!-- v-for -->  
    </scroll-view>  
</div>   

      uni.$on('streamer_message_receive', data => {  
          console.log("BBB主播监听到了",data);  
          var msg=data;  
          console.log("msgtype===",msg["type"],msg);  
          var msgtext="";  
          if(msg["type"]=="message"){  
                msgtext=msg["content"];  
                if(msgtext.trim()!='') {  
                    var mynode=_that.getNodesFormMsgText(msgtext);  
                    if(!mynode || mynode.length==0) return ;  
                    msg["nodes"]=mynode;  
                    _that.messagelist.push(msg);  
                }  
          } else{  
              msgtext=msg["message"]  
              _that.userInOut_text=msgtext;                      
          }  

      })  

messagelist:
[
{
"userid": "",
"msgtype": "message",
"content": "欢迎来到直播间,严禁未成年人直播或礼物消费。严禁违法违规、低俗色情、吸烟酗酒、人生伤害等直播内容。理性消费。切勿私下交易,以防人身财产损失,谨防网络诈骗。"
},
{
"system": "livechat",
"type": "message",
"msgtype": "message",
"userid": 98501,
"name": "hhtest",
"nickname": "hh测试号1",
"GroupId": 98501,
"content": "地方[抓狂][困]",
"nodes": [
{
"name": "div",
"attrs": {
"class": "div-class",
"style": "text-align:center; display: flex; align-items: flex-end; "
},
"children": [
{
"type": "text",
"text": "地方"
},
{
"name": "img",
"attrs": {
"src": "/static/emoji/118.gif",
"style": "height: 16px; width: 16px;"
}
},
{
"name": "img",
"attrs": {
"src": "/static/emoji/125.gif",
"style": "height: 16px; width: 16px;"
}
}
]
}
]
}
]

操作步骤:

1》登录--》发现--》直播列表--》点击一个用户 输入多条带表情的消息
2》登录--》发现--》直播列表--》开始直播--》输入带表情的消息

预期结果:

1》多条消息能够列表显示
2》多条消息能够列表显示

实际结果:

1》能正确显示
2》显示一条后闪烁 程序进入死循环 卡死

bug描述:

使用livePusher插件时的页面使用rich-text 动态绑定带图片的nodes时 死循环

reportJSException >>>> exception function:callUpdateAttrs, exception:java.lang.NullPointerException: Attempt to invoke interface method 'void java.util.Map.putAll(java.util.Map)' on a null object reference
at io.dcloud.feature.uniapp.dom.AbsAttr.putAll(SourceFile:4)
at io.dcloud.feature.uniapp.ui.action.AbsComponentData.addAttr(SourceFile:7)
at io.dcloud.feature.uniapp.ui.component.AbsBasicComponent.addAttr(SourceFile:4)
at com.taobao.weex.ui.action.GraphicActionUpdateAttr.<init>(SourceFile:9)
at com.taobao.weex.bridge.WXBridgeManager.callUpdateAttrs(SourceFile:26)
at com.taobao.weex.bridge.WXBridge.callUpdateAttrs(SourceFile:1)
at com.taobao.weex.base.SystemMessageHandler.nativeRunWork(Native Method)
at com.taobao.weex.base.SystemMessageHandler.handleMessage(SourceFile:1)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loopOnce(Looper.java:282)
at android.os.Looper.loop(Looper.java:387)
at android.os.HandlerThread.run(HandlerThread.java:85)
22:19:48.278 reportJSException >>>> exception function:callUpdateAttrs, exception:java.lang.NullPointerException: Attempt to invoke interface method 'void java.util.Map.putAll(java.util.Map)' on a null object reference

2025-09-09 22:52 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com (作者)

android apk

要回复问题请先登录注册