質問

Androidアプリケーションにボタンがあります。次のコードが呼び出されたボタンをクリックすると:

TestSmack a = new TestSmack();
a.login("abc@gmai.com","password");

私はtestsmackクラスを持っています.....このクラスのコンストラクターで私は書いた

public TestSmack ()
{
    ConnectionConfiguration connConfig = new 
          ConnectionConfiguration("talk.google.com", 5222, "gmail.com");
    connection = new XMPPConnection(connConfig);
}

ここで、XMPPConnection接続はグローバル変数です。ログイン方法では、サーバーに接続しようとします。

public void login(String userName, String password) throws XMPPException
{
    SASLAuthentication.supportSASLMechanism("PLAIN", 0);
    connection.connect();    
    connection.login(userName, password);
}

しかし、それはクラッシュします。何が起こっているのかわかりません。

一方、私がこれらをすべてから呼び出すとき main() また、個別のプロジェクト(AndroidではなくJava)で簡単なJavaアプリケーションを実行します。正常に機能します。

何が問題なのかわかりません。

ありがとう

役に立ちましたか?

解決

標準のスマックライブラリを使用していますか?数ヶ月前にXMPPをいじっていたとき、あなたはそれをAndroidで動作させるためにライブラリにパッチを当てなければなりませんでした。多分これは役立ちます:

http://davanum.wordpress.com/2008/12/29/updated-xmpp-client-for-android/

他のヒント

Androidでプログラムを実行できない場合は、Connect()とLogin()Smack APIが正常に動作しているかどうかを確認してください。

使用許可android:name = "android.permission.internet"(< /> seperateブレース内に囲む)

connect()およびlogin()のandroidmanifestファイルで動作します。パッチ付きsmack.jarを使用することを忘れないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top