【问题标题】:NullPointerException while setting firstname in vcard in smack在 smack 中设置 vcard 中的名字时出现 NullPointerException
【发布时间】: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 中,这看起来非常不规则。
  • 在询问异常原因时始终显示完整的堆栈跟踪!

标签: android xmpp smack


【解决方案1】:

1.代替:

VCard vCard = null;

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

VCard vCard = new VCard();

2.also 而不是这两行:

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

这样做:

vCard.load(conn);

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

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 2020-03-18
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多