- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
你好,v3.2.1的Android端偶尔遇到这样的错误。
异常日志:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at com.intel.webrtc.conference.ConferenceClient$1.call(ConferenceClient.java:331)
at io.socket.client.Socket.onack(Socket.java:379)
at io.socket.client.Socket.onpacket(Socket.java:307)
at io.socket.client.Socket.access$100(Socket.java:19)
at io.socket.client.Socket$2$2.call(Socket.java:111)
at io.socket.emitter.Emitter.emit(Emitter.java:117)
at io.socket.client.Manager.ondecoded(Manager.java:407)
at io.socket.client.Manager.access$1600(Manager.java:20)
at io.socket.client.Manager$7.call(Manager.java:383)
at io.socket.emitter.Emitter.emit(Emitter.java:117)
at io.socket.parser.Parser$Decoder.add(Parser.java:157)
at io.socket.client.Manager.ondata(Manager.java:399)
at io.socket.client.Manager.access$1000(Manager.java:20)
at io.socket.client.Manager$2.call(Manager.java:350)
at io.socket.emitter.Emitter.emit(Emitter.java:117)
at io.socket.engineio.client.Socket.onPacket(Socket.java:497)
at io.socket.engineio.client.Socket.access$900(Socket.java:30)
at io.socket.engineio.client.Socket$5.call(Socket.java:299)
at io.socket.emitter.Emitter.emit(Emitter.java:117)
at io.socket.engineio.client.Transport.onPacket(Transport.java:127)
at io.socket.engineio.client.Transport.onData(Transport.java:119)
at io.socket.engineio.client.transports.WebSocket.access$300(WebSocket.java:32)
at io.socket.engineio.client.transports.WebSocket$1$3.run(WebSocket.java:111)
at io.socket.thread.EventThread$2.run(EventThread.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
反编译ConferenceClient$1.class,找到源代码:
public transient void call(Object aobj[])
{
if(aobj[0] != null && (aobj[0].toString().equals("error") || aobj[0].toString().equals("timeout")))
{
ConferenceClient.access$000(ConferenceClient.this).remove(((LocalStream)val$stream).getMediaStream().label());
if(val$callback != null)
val$callback.onFailure(new WoogeenException((new StringBuilder()).append("Server replied with error message: ").append(aobj[0].toString()).toString()));
return;
} else
{
val$stream.setId(aobj[1].toString());
aobj = new ConferencePeerConnectionChannel(ConferenceClient.access$100(ConferenceClient.this), ConferenceClient.this, (LocalStream)val$stream);
ConferenceClient.access$200(ConferenceClient.this).add(((Object) (aobj)));
((ConferencePeerConnectionChannel) (aobj)).sendOffer();
return;
}
}
aobj[1]没判断是否为null就取值,是否合适?
请帮忙看看这个问题。多谢!
- Tags:
- HTML5
- JavaScript*
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, Han
could you please provide the server version please?
and i assume you only called publish(), right? could you please provide detailed reproduce procedure?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
你好,
使用的server(MCU) 是哪个版本呢?
publish时候的具体参数是什么呢?可以提供一下复现的具体步骤吗?谢谢
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
服务端和Android客户端使用的都是v3.2.1。发布这块代码是这样:
LocalCameraStreamParameters lcsp = new LocalCameraStreamParameters(true, true); lcsp.setCamera(LocalCameraStreamParameters.CameraType.BACK); lcsp.setResolution(640, 480);
LocalCameraStream mLocalStream = new LocalCameraStream(lcsp);
PublishOptions options = new PublishOptions(); options.setMaximumVideoBandwidth(300); options.setMaximumAudioBandwidth(50); options.setVideoCodec(MediaCodec.VideoCodec.H264);//或VP8
ConferenceClient mRoom;
mRoom.publish(mLocalStream, options, new ActionCallback<Void>(){
...
}
这个异常偶尔出现,没有规律,我各种尝试没法复现。比如Android端正在跟pc端视频会议,音视频都正常,过一阵子就可能出现这个异常。v3.2.1之前的版本都没发现过这个问题。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Han
感谢让我们得知这个问题,我们会尽快复现并查找原因。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
在Android SDK的conferenceSample中能复现了这个异常:
1、频繁的点击按钮connect(join)、disconcert(leave)、Start Video(publish)、Stop Video(unpublish),间隔时间随机(几秒~30秒),conferenceSample会闪退。
2、在保持connect的条件下,频繁的点击按钮Start Video(publish)、Stop Video(unpublish),间隔时间随机(几秒~30秒),conferenceSample会闪退。
在我根据conferenceSample修改的代码中也是这样,多次publish、unpublish就会异常。
请帮忙看看,多谢。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
han x. wrote:
在Android SDK的conferenceSample中能复现了这个异常:
1、频繁的点击按钮connect(join)、disconcert(leave)、Start Video(publish)、Stop Video(unpublish),间隔时间随机(几秒~30秒),conferenceSample会闪退。
2、在保持connect的条件下,频繁的点击按钮Start Video(publish)、Stop Video(unpublish),间隔时间随机(几秒~30秒),conferenceSample会闪退。
在我根据conferenceSample修改的代码中也是这样,多次publish、unpublish就会异常。
请帮忙看看,多谢。
出现的异常是指上面提到的异常吗?我们会在下一个版本修复这个问题。 谢谢
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
conferenceSample里没加异常捕获,异常时直接闪退,logcat看不到具体的异常信息。我根据conferenceSample改的代码加了异常捕获,就是一楼提到的空指针异常。二者现象都是一样的,都是频繁发布、取消发布时出现了应用闪退。我给conferenceSample加上异常捕获再确认下。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
v3.3后再没出现过这种问题。
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page