xmpp练习时出现的问题。

来源:互联网 发布:淘宝评论怎么看不到 编辑:程序博客网 时间:2024/06/05 16:36
第一次写这个东西,不知道能不能坚持,我是一个android的菜鸟。现在在一家公司做实习生。一些都得从头再来。
不多说,最近老大要我看一些xmpp的东西。到了一个例子,然后吧,出现了一些问题。不多说,上原码:


package com.slook.smack;import org.jivesoftware.smack.XMPPException;import org.jivesoftware.smackx.packet.VCard;import com.slook.smack.service.MucService;import com.slook.smack.utils.Constants;import com.slook.smack.utils.NetUitl;import android.app.Activity;import android.app.ProgressDialog;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class LoginActivity extends Activity {private static final String TAG = "LoginActivity";private ProgressDialog pd;private static final int CONECTION_SUCCESS = 10;//登陆成功private static final int FAEILDL = 20;private EditText et_UserName;private EditText et_PassWord;private String username;private String password;SharedPreferences sp = null;Handler handler = new Handler() {public void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case CONECTION_SUCCESS:// 取消进度框pd.dismiss();// 启动主界面Intent intent = new Intent(LoginActivity.this,MainActivity.class);startActivity(intent);finish();break;case FAEILDL:break;}}};@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.login);sp = getSharedPreferences("history", Context.MODE_PRIVATE);et_PassWord = (EditText) this.findViewById(R.id.et_passWord);et_UserName = (EditText) this.findViewById(R.id.et_userName);String u = sp.getString("username", "");String p = sp.getString("password", "");et_PassWord.setText(p);et_UserName.setText(u);// 进度框显示pd = new ProgressDialog(this);pd.setTitle("提示");pd.setMessage("请稍后...");Button btn_login = (Button) this.findViewById(R.id.btn_login);btn_login.setOnClickListener(new OnClickListener() {public void onClick(View v) {pd.show();new Thread(new Runnable() {public void run() {try {Editor editor = sp.edit();editor.putString("username", username);editor.putString("password", password);editor.commit();BuilderString(et_UserName.getText().toString());password = et_PassWord.getText().toString();System.out.println("用户信息: " + username + ":" + password);// 连接服务器Constants.conn = NetUitl.getConnection(Constants.SERVERDOMAIN, 5222);Constants.conn.login(username, password);VCard vCard = new VCard();vCard.load(Constants.conn);if("".equals(vCard.getNickName()) || null == vCard.getNickName()){System.out.println("昵称是空的");vCard.setNickName("快乐的汤姆猫");}Constants.vCard = vCard;Log.i(TAG, "登陆成功");// 发送消息通知ui更新Message msg = new Message();msg.what = CONECTION_SUCCESS;handler.sendMessage(msg);} catch (XMPPException e) {e.printStackTrace();Log.i(TAG, "登陆失败");}}}).start();}});}/** * 转换用户名中的@符号 *  */public void BuilderString(String user) {if (user.contains("@")) {String[] userArray = user.split("@");username = userArray[0].toString() + "\\40"+ userArray[1].toString();}}}
而运行时出现了一个bug
09-09 16:07:37.520: E/AndroidRuntime(4532): FATAL EXCEPTION: main09-09 16:07:37.520: E/AndroidRuntime(4532): java.lang.VerifyError: com/slook/smack/LoginActivity$2$109-09 16:07:37.520: E/AndroidRuntime(4532): at com.slook.smack.LoginActivity$2.onClick(LoginActivity.java:79)09-09 16:07:37.520: E/AndroidRuntime(4532): at android.view.View.performClick(View.java:4204)09-09 16:07:37.520: E/AndroidRuntime(4532): at android.view.View$PerformClick.run(View.java:17355)09-09 16:07:37.520: E/AndroidRuntime(4532): at android.os.Handler.handleCallback(Handler.java:725)09-09 16:07:37.520: E/AndroidRuntime(4532): at android.os.Handler.dispatchMessage(Handler.java:92)09-09 16:07:37.520: E/AndroidRuntime(4532): at android.os.Looper.loop(Looper.java:137)09-09 16:07:37.520: E/AndroidRuntime(4532): at android.app.ActivityThread.main(ActivityThread.java:5041)09-09 16:07:37.520: E/AndroidRuntime(4532): at java.lang.reflect.Method.invokeNative(Native Method)09-09 16:07:37.520: E/AndroidRuntime(4532): at java.lang.reflect.Method.invoke(Method.java:511)09-09 16:07:37.520: E/AndroidRuntime(4532): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)09-09 16:07:37.520: E/AndroidRuntime(4532): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)09-09 16:07:37.520: E/AndroidRuntime(4532): at dalvik.system.NativeStart.main(Native Method)




原创粉丝点击