Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

aSmack error: XMPPConnection is abstract; cannot be instantiated

I'm following a tutorial to make a very basic chat app with Android Studio, but I'm getting the error:

Error:(131, 45) error: XMPPConnection is abstract; cannot be instantiated

at the following line:

ConnectionConfiguration connConfig = new ConnectionConfiguration(HOST, PORT, SERVICE);
         XMPPConnection connection = new XMPPConnection(connConfig); 

And I'm also getting some "Unhandled exception" when trying to use XMPPConnection elements.

Also link to the tutorial: LINK

like image 810
zeroone Avatar asked Dec 15 '22 23:12

zeroone


2 Answers

Looks like this changed in Smack 4.0.0. The documentation still has not been updated.

And it looks like they will change it again in Smack 4.1:

What was     
Connection connection = new XMPPConnection()
is
XMPPConnection connection = new XMPPTCPConnection()
in Smack 4 and will become
AbstractXMPPConnection connection = new XMPPTCPConnection()
in Smack 4.1

Please see this link: https://igniterealtime.org/issues/browse/SMACK-574

There is also an upgrade guide for SMACK 4.0: https://community.igniterealtime.org/docs/DOC-2703

UPDATE:

Also, looks like the new Smack 4.x libraries will only run with Java 7 and above. Java 6 backwards compatibility is broken.

like image 101
Jose Avatar answered Jan 26 '23 12:01

Jose


ConnectionConfiguration was changed too.

XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
                    .setServiceName("example.org").setUsernameAndPassword("user", "password")
                    .setCompressionEnabled(false).build();
like image 33
blyabtroi Avatar answered Jan 26 '23 11:01

blyabtroi