i start openFire and test it with spark everything is ok but when i try to connect with smack 4.2.0 in android studio i got this error:
Ljavax/naming/directory/Initi
Please check : https://github.com/igniterealtime/Smack/wiki/Smack-4.2-Readme-and-Upgrade-Guide
In previous versions of Smack, ConnectionConfiguration.setHost(String) could be used to set the XMPP service's host IP address. This is no longer possible due to the added DNSSEC support. You have to use the new connection configuration ConnectionConfiguration.setHostAddress(InetAddress) instead.
You can check this also.
failed because: de.measite.minidns.hla.ResolutionUnsuccessfulException: Asking for xxxx. IN AAAA yielded an error response NX_DOMAIN
The error you have encountered is stemming from incomplete addressing of your XMPP server.
Imagine this scenario:
my ejabberd server is running on this address: 192.168.209.2 #ejabberd server
There is a xmpp domain named "localhost" There are two JIDs,
"davood@localhost" and "sadegh@localhost"
In smack, I want to authenticate with my user, say "davood@localhost". Then I do it as follow:
InetAddress addr = InetAddress.getByName("192.168.209.2");
HostnameVerifier verifier = new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
return false;
}
};
DomainBareJid serviceName = JidCreate.domainBareFrom("localhost");
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setHost(server) # it will be resolved by setHostAddress method
.setUsernameAndPassword("davood","mypass")
.setPort(5222)
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
.setXmppDomain(serviceName)
.setHostnameVerifier(verifier)
.setHostAddress(addr)
.setDebuggerEnabled(true)
.build();
AbstractXMPPConnection conn1 = new XMPPTCPConnection(config);
conn1.connect();
if(conn1.isConnected()){
Log.d("XMPP","Connected");
}
conn1.login();
if(conn1.isAuthenticated()){
Log.d("XMPP","Authenticated");
EntityBareJid jid = JidCreate.entityBareFrom("sadegh@localhost");
org.jivesoftware.smack.chat2.Chat chat = ChatManager.getInstanceFor(conn1).chatWith(jid);
chat.send("Eureka, I am connected!");
}