在 smack 中设置 vcard 中的名字时出现 NullPointerException

Posted

技术标签:

【中文标题】在 smack 中设置 vcard 中的名字时出现 NullPointerException【英文标题】:NullPointerException while setting firstname in vcard in smack 【发布时间】:2017-07-12 09:53:12 【问题描述】:

在 vcard 中设置名字时获取 NullPointerException 当我设置昵称时它工作正常但是当设置名字时得到空指针异常

我正在使用此代码

VCard vCard = null;
VCardManager vCardManager = VCardManager.getInstanceFor(conn);
try 
    vCard = vCardManager.loadVCard();
    try 
        vCard.setNickName(imageurl);
        vCard.setFirstName("Scheller");
        vCard.save(conn);
     
    catch (Exception e) 
        e.printStackTrace();
    


catch (SmackException.NoResponseException e) 
    e.printStackTrace();
 

catch (XMPPException.XMPPErrorException e) 
    e.printStackTrace();
 

catch (SmackException.NotConnectedException e) 
    e.printStackTrace();

在 setFirstName 上它因这个异常而崩溃

java.lang.NullPointerException exception. Cannot evaluate org.jivesoftware.smackx.vcardtemp.packet.VCard.toString()

【问题讨论】:

我不熟悉 smack,但是在这行 vCard.setFirstName 中,这看起来非常不规则。 在询问异常原因时始终显示完整的堆栈跟踪! 【参考方案1】:

1.代替:

VCard vCard = null;

尝试创建一个新的 VCard 对象:

VCard vCard = new VCard();

2.also 而不是这两行:

VCardManager vCardManager = VCardManager.getInstanceFor(conn);
vCard = vCardManager.loadVCard();

这样做:

vCard.load(conn);

看看对你的问题有没有帮助

【讨论】:

以上是关于在 smack 中设置 vcard 中的名字时出现 NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Excel VBA 中设置 RefersToRange 属性时出现问题

在supervisord中设置环境变量时出现Python键错误

在结构中设置数组元素时出现总线错误

在 clickhouse 中设置缓存字典时出现 OOM 错误

在 Android Studio 中设置 Flutter 时出现问题

在 ListView 中设置页脚布局时出现问题