Ошибка aSmack: XMPPConnection является абстрактным; не может быть
Я следую учебнику, чтобы сделать очень основное приложение для чата с Android Studio, но я получаю сообщение об ошибке:
Ошибка: (131, 45) ошибка: XMPPConnection является абстрактным; не может быть инстанцирован
в следующей строке:
ConnectionConfiguration connConfig = new ConnectionConfiguration(HOST, PORT, SERVICE);
XMPPConnection connection = new XMPPConnection(connConfig);
И я также получаю "необработанное исключение" при попытке использовать элементы XMPPConnection.
Также ссылка на учебник: LINK
Ответы
Ответ 1
Похоже, это изменилось в Smack 4.0.0. Документация по-прежнему не обновляется.
И похоже, что они снова изменят его в 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
Пожалуйста, просмотрите эту ссылку: https://igniterealtime.org/issues/browse/SMACK-574
Существует также руководство по обновлению для SMACK 4.0: https://community.igniterealtime.org/docs/DOC-2703
UPDATE:
Кроме того, похоже, что новые библиотеки Smack 4.x будут работать только с Java 7 и выше. Обратная совместимость с Java 6 нарушена.
Ответ 2
Изменена ConnectionConfiguration.
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setServiceName("example.org").setUsernameAndPassword("user", "password")
.setCompressionEnabled(false).build();