zhaoyang21cn / iLiveSDK_Android_Suixinbo

ILiveSDK samples
250 stars 86 forks source link

AvRootView findUserViewIndex有空指针异常 #7

Open anonymouslydev opened 7 years ago

anonymouslydev commented 7 years ago

@Override public int findUserViewIndex(String id) { for (int i = 0; i < ILiveConstants.MAX_AV_VIDEO_NUM; i++) { if (null != mBindMap[i].id && mBindMap[i].id.equals(id)) { return i; } }

    for (int i = 0; i < ILiveConstants.MAX_AV_VIDEO_NUM; i++) {
        if (id.equals(mVideoArr[i].getIdentifier())) {
            return i;
        }
    }

    return ILiveConstants.INVALID_INTETER_VALUE;
}

第二个for循环中NullPointer

xkazer commented 7 years ago

第二个for循环中出现NullPointer,只有可能是id或mVideoArr[i]为空,id是入参,这里需要检查下是否传入了空指针,这个后续我们做个保护吧,mVideoArr[i]是一个数组,是在初始化时创建,对应会有

ILVB-AVRootView|initVideoGroup->enter

日志输出,需要检测下是否在未初始化时调用

anonymouslydev commented 7 years ago

avRootView.initView(null); avRootView.initVideoGroup();

这俩方法都要调用,不然都有可能空指针 SDK在 ILVCallManager.getInstance().initAvView(avRootView)处理下呗,真心不好找

xkazer commented 7 years ago

不太明白,initView和initVideoGroup都是在initAvView内部调用的,不需要外面调用啊,可以参考下我们的demo,avRootView不需要调用什么初始化的