xmpp练习时出现的问题。

第一次写这个东西,不知道能不能坚持,我是一个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;
			}
		}
	};

	@Override
	public 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: main
09-09 16:07:37.520: E/AndroidRuntime(4532): java.lang.VerifyError: com/slook/smack/LoginActivity$2$1
09-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)





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值