gpt4 book ai didi

android 无法在 asmack 中添加好友

转载 作者:行者123 更新时间:2023-11-29 17:51:05 26 4
gpt4 key购买 nike

我不熟悉 smack 库的使用和制作一个聊天应用程序。当我添加 friend 时,从这段代码..,它有效。

public void Addcontact() {    
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);
Roster roster = m_connection.getRoster();

if(!roster.contains("abc@gmail.com")) {
try {
roster.createEntry("abc@gmail.com", "abc", null);
} catch (XMPPException e) {
e.printStackTrace();
}
}else {
Log.i("error= ", "contains");
}
}

此代码适用于添加单个 friend ..,但现在我想动态添加花名册中的 friend ..,我试过此代码

   private void addEntry(String jid, String user, String[] groups) {
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);
roster = commanInstant.connection.getRoster();

try {
roster.createEntry(jid,user,null);
System.out.println(""+jid+user);
} catch (XMPPException e) {
e.printStackTrace();
System.out.println(""+e);
}
}
}

所以它在单击按钮时给我空指针异常。

这是我的日志

03-31 12:34:19.740: D/AndroidRuntime(4886): Shutting down VM
03-31 12:34:19.770: E/AndroidRuntime(4886): FATAL EXCEPTION: main
03-31 12:34:19.770: E/AndroidRuntime(4886): java.lang.NullPointerException
03-31 12:34:19.770: E/AndroidRuntime(4886): at org.jivesoftware.smack.packet.RosterPacket$Item.<init>(RosterPacket.java:117)
03-31 12:34:19.770: E/AndroidRuntime(4886): at org.jivesoftware.smack.Roster.createEntry(Roster.java:283)
03-31 12:34:19.770: E/AndroidRuntime(4886): at com.wisechatter.Contact_ListActivity.addEntry(Contact_ListActivity.java:176)
03-31 12:34:19.770: E/AndroidRuntime(4886): at co m.wisechatter.Contact_ListActivity.onClick(Contact_ListActivity.java:164)
03-31 12:34:19.770: E/AndroidRuntime(4886): at android.view.View.performClick(View.java:4204)
03-31 12:34:19.770: E/AndroidRuntime(4886): at android.view.View$PerformClick.run(View.java:17355)
03-31 12:34:19.770: E/AndroidRuntime(4886): at and roid.os.Handler.handleCallback(Handler.java:725)
03-31 12:34:19.770: E/AndroidRuntime(4886): at android.os.Handler.dispatchMessage(Handler.java:92)
03-31 12:34:19.770: E/AndroidRuntime(4886): at android.os.Looper.loop(Looper.java:137)
03-31 12:34:19.770: E/AndroidRuntime(4886): at android.app.ActivityThread.main(ActivityThread.java:5041)
03-31 12:34:19.770: E/AndroidRuntime(4886): at java.lang.reflect.Method.invokeNative(Native Method)
03-31 12:34:19.770: E/AndroidRuntime(4886): at java.lang.reflect.Method.invoke(Method.java:511)
03-31 12:34:19.770: E/AndroidRuntime(4886): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-31 12:34:19.770: E/AndroidRuntime(4886): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-31 12:34:19.770: E/AndroidRuntime(4886): at dalvik.system.NativeStart.main(Native Method)

我知道这是一个非常愚蠢的问题,但我没有得到正确的解决方案..,请帮助我..,提前致谢..:)

最佳答案

只需在此处更改您的 add_account 行

  private void addEntry(String userName) 
{
try {
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);

String jid=userName+Constants.ADVANTLPC__SMACK;
commanInstance.roster.createEntry(jid, jid , null);
Presence pres = new Presence(Presence.Type.subscribe);
pres.setFrom(jid);
commanInstance.connection.sendPacket(pres);

commanInstance.loadFriendList();

} catch (Exception e) {
Log.e("tag", "unable to add contact: ", e);
}

}

在 loadfriendlist() 中,这里将是您的 ListView 。

关于android 无法在 asmack 中添加好友,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22761712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com