Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Smack 4.1 SASL身份验证错误_Android_Eclipse_Xmpp_Smack - Fatal编程技术网

Android Smack 4.1 SASL身份验证错误

Android Smack 4.1 SASL身份验证错误,android,eclipse,xmpp,smack,Android,Eclipse,Xmpp,Smack,我正在使用Smack 4.1 android本机库开发聊天应用程序。我可以在我的应用程序和服务器之间设置一个连接,但是在登录时我遇到了关于SASL身份验证的SmackException 需要注意的要点。 我的服务器端不需要SASL身份验证 我的应用程序没有崩溃,而是出现了以下错误,我在下面的日志cat snnippet中显示了这些错误 我使用的是EclipseLuna和JDK1.7版,我在libs文件夹中包含了以下库 jxmpp-core-0.4.1 jxmpp-util-cache-0.4.1

我正在使用Smack 4.1 android本机库开发聊天应用程序。我可以在我的应用程序和服务器之间设置一个连接,但是在登录时我遇到了关于SASL身份验证的SmackException

需要注意的要点。

  • 我的服务器端不需要SASL身份验证
  • 我的应用程序没有崩溃,而是出现了以下错误,我在下面的日志cat snnippet中显示了这些错误
  • 我使用的是EclipseLuna和JDK1.7版,我在libs文件夹中包含了以下库

  • jxmpp-core-0.4.1
  • jxmpp-util-cache-0.4.1
  • minidns-0.1.1
  • smack-android-4.1.0.jar
  • smack-android-extensions-4.1.0
  • smack-core-4.1.0
  • smack-extensions-4.1.0
  • smack-im-4.1.0
  • smack-tcp-4.1.0
  • 这是我用来建立连接的代码

    XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
            configBuilder.setUsernameAndPassword(userName, pass);
            configBuilder.setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled);
            configBuilder.setResource("testServices");
            configBuilder.setServiceName(DOMAIN);
            configBuilder.setPort(PORT);
            configBuilder.setHost(DOMAIN);
            configBuilder.setDebuggerEnabled(true);
    
            AbstractXMPPConnection connection = new XMPPTCPConnection(
                    configBuilder.build());
    
            /** Connecting to the server */
            try {
                connection.connect();
                Log.i(TAG, "Connected to " + connection.getHost());
            } catch (SmackException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (XMPPException e) {
                Log.e(TAG, "Failed to connect to " + connection.getHost());
                Log.e(TAG, e.toString());
                e.printStackTrace();
            }
    
            /** LogingIn to the server */
            try {
    
                //SASLMechanism.PLAIN();
                //SASLAuthentication.("PLAIN", 0);
    
                connection.login(userName, pass);
                // connection.login();
            } catch (XMPPException e) {
                e.printStackTrace();
            } catch (SmackException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            /** LogingOut from the server */
            connection.disconnect();
    
    这是我的logcat输出

    04-20 22:22:51.584: D/SMACK(8335): SENT (0): <stream:stream xmlns='jabber:client' to='my_server_url' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='10001@my_server_url' xml:lang='en'>
    04-20 22:22:52.519: D/SMACK(8335): RECV (0): <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" version="1.0" id="0768491716592086" from="my_server_url">
    04-20 22:22:53.744: D/SMACK(8335): RECV (0): <stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanisms></stream:features>
    04-20 22:22:53.749: I/(8335): Connected to "smy_server_url"
    
    04-21 12:24:55.815: I/(16566): SmackException to my_server_link.comorg.jivesoftware.smack.SmackException: SASL Authentication failed. No known authentication mechanisims.
    04-20 22:22:53.754: W/System.err(8335): org.jivesoftware.smack.SmackException: SASL Authentication failed. No known authentication mechanisims.
    04-20 22:22:53.759: W/System.err(8335):     at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:254)
    04-20 22:22:53.759: W/System.err(8335):     at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginNonAnonymously(XMPPTCPConnection.java:365)
    04-20 22:22:53.759: W/System.err(8335):     at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:452)
    04-20 22:22:53.759: W/System.err(8335):     at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:427)
    04-20 22:22:53.759: W/System.err(8335):     at com.epixoft.ui.LoginActivity$ConnectionTestTask.doInBackground(LoginActivity.java:120)
    04-20 22:22:53.759: W/System.err(8335):     at com.epixoft.ui.LoginActivity$ConnectionTestTask.doInBackground(LoginActivity.java:1)
    04-20 22:22:53.759: W/System.err(8335):     at android.os.AsyncTask$2.call(AsyncTask.java:288)
    04-20 22:22:53.759: W/System.err(8335):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    04-20 22:22:53.759: W/System.err(8335):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    04-20 22:22:53.764: W/System.err(8335):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    04-20 22:22:53.764: W/System.err(8335):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    04-20 22:22:53.764: W/System.err(8335):     at java.lang.Thread.run(Thread.java:841)
    04-20 22:22:53.784: D/SMACK(8335): SENT (0): <presence id='PwoLk-3' type='unavailable'><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.igniterealtime.org/projects/smack' ver='NfJ3flI83zSdUDzCEICtbypursw='/></presence>
    04-20 22:22:53.789: D/SMACK(8335): SENT (0): </stream:stream>
    04-20 22:22:53.864: E/ViewRootImpl(8335): sendUserActionEvent() mView == null
    
    04-20 22:22:51.584:D/SMACK(8335):发送(0):
    04-20 22:22:52.519:D/SMACK(8335):RECV(0):
    04-20 22:22:53.744:D/SMACK(8335):RECV(0):普通
    04-20 22:22:53.749:I/(8335):连接到“smy_服务器url”
    04-21 12:24:55.815:I/(16566):SmackException to my_server_link.comorg.jivesoftware.smack.SmackException:SASL身份验证失败。没有已知的身份验证机制。
    04-20 22:22:53.754:W/System.err(8335):org.jivesoftware.smack.SmackException:SASL身份验证失败。没有已知的身份验证机制。
    04-20 22:22:53.759:W/System.err(8335):位于org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:254)
    04-20 22:22:53.759:W/System.err(8335):位于org.jivesoftware.smack.tcp.XMPPTCPConnection.loginnonymously(XMPPTCPConnection.java:365)
    04-20 22:22:53.759:W/System.err(8335):位于org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:452)
    04-20 22:22:53.759:W/System.err(8335):位于org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:427)
    04-20 22:22:53.759:W/System.err(8335):位于com.epixoft.ui.LoginActivity$ConnectionTestTask.doInBackground(LoginActivity.java:120)
    04-20 22:22:53.759:W/System.err(8335):位于com.epixoft.ui.LoginActivity$ConnectionTestTask.doInBackground(LoginActivity.java:1)
    04-20 22:22:53.759:W/System.err(8335):在android.os.AsyncTask$2.call(AsyncTask.java:288)
    04-20 22:22:53.759:W/System.err(8335):位于java.util.concurrent.FutureTask.run(FutureTask.java:237)
    04-20 22:22:53.759:W/System.err(8335):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    04-20 22:22:53.764:W/System.err(8335):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    04-20 22:22:53.764:W/System.err(8335):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    04-20 22:22:53.764:W/System.err(8335):位于java.lang.Thread.run(Thread.java:841)
    04-20 22:22:53.784:D/SMACK(8335):已发送(0):
    04-20 22:22:53.789:D/SMACK(8335):已发送(0):
    04-20 22:22:53.864:E/ViewRootImpl(8335):sendUserActionEvent()mView==null
    
    提前感谢您的帮助。
    干杯:)

    经过努力,我终于找到了解决问题的办法


    我必须导入
    smack-sasl-provided-4.1.0.jar
    以消除此saslauthentification错误。

    您能详细描述一下您的答案吗@泰穆尔汗