android - 解决 Android Cordova 应用程序中的 org.jivesoftware.smack 错误
问题描述
在我的 Android/Cordova 应用程序中使用 Smack 出现此错误,我找不到解决方法。
我在我的 gradle.build 中得到了这个,但是没有这个项目就无法工作:配置 { all*.exclude group: 'xpp3', module: 'xpp3' debug release }
这是堆栈跟踪:
E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-4
java.lang.ExceptionInInitializerError
at org.jivesoftware.smack.Smack.getVersion(Smack.java:36)
at org.jivesoftware.smack.Smack.ensureInitialized(Smack.java:50)
at org.jivesoftware.smack.ConnectionConfiguration.<clinit>(ConnectionConfiguration.java:115)
at org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration.builder(XMPPTCPConnectionConfiguration.java:64)
at com.iadvize.conversation.sdk.controller.conversation.xmpp.XmppConnectionController.openConnection(XmppConnectionController.kt:134)
at com.iadvize.conversation.sdk.controller.conversation.xmpp.XmppConnectionController.access$openConnection(XmppConnectionController.kt:24)
at com.iadvize.conversation.sdk.controller.conversation.xmpp.XmppConnectionController$connect$2$1.invokeSuspend(XmppConnectionController.kt:93)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: java.lang.IllegalStateException: Could not parse Smack configuration file
at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:106)
at org.jivesoftware.smack.Smack.getVersion(Smack.java:36)
at org.jivesoftware.smack.Smack.ensureInitialized(Smack.java:50)
at org.jivesoftware.smack.ConnectionConfiguration.<clinit>(ConnectionConfiguration.java:115)
at org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration.builder(XMPPTCPConnectionConfiguration.java:64)
at com.iadvize.conversation.sdk.controller.conversation.xmpp.XmppConnectionController.openConnection(XmppConnectionController.kt:134)
at com.iadvize.conversation.sdk.controller.conversation.xmpp.XmppConnectionController.access$openConnection(XmppConnectionController.kt:24)
at com.iadvize.conversation.sdk.controller.conversation.xmpp.XmppConnectionController$connect$2$1.invokeSuspend(XmppConnectionController.kt:93)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: java.lang.IllegalStateException: No XmlPullParserFactory registered with Service Provider Interface (SPI). Is smack-xmlparser-xpp3 or smack-xmlparser-stax in classpath?
at org.jivesoftware.smack.xml.SmackXmlParser.getXmlPullParserFactory(SmackXmlParser.java:41)
at org.jivesoftware.smack.xml.SmackXmlParser.newXmlParser(SmackXmlParser.java:65)
at org.jivesoftware.smack.util.PacketParserUtils.getParserFor(PacketParserUtils.java:80)
at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:159)
at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:154)
at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:103)
at org.jivesoftware.smack.Smack.getVersion(Smack.java:36)
at org.jivesoftware.smack.Smack.ensureInitialized(Smack.java:50)
at org.jivesoftware.smack.ConnectionConfiguration.<clinit>(ConnectionConfiguration.java:115)
at org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration.builder(XMPPTCPConnectionConfiguration.java:64)
at com.iadvize.conversation.sdk.controller.conversation.xmpp.XmppConnectionController.openConnection(XmppConnectionController.kt:134)
at com.iadvize.conversation.sdk.controller.conversation.xmpp.XmppConnectionController.access$openConnection(XmppConnectionController.kt:24)
at com.iadvize.conversation.sdk.controller.conversation.xmpp.XmppConnectionController$connect$2$1.invokeSuspend(XmppConnectionController.kt:93)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
解决方案
推荐阅读
- nim-lang - 如何创建具有特定优先级的 startProcess
- jquery - CSS在移动设备上将父宽度设置为0时,子溢出
- javascript - 未知提供者:$scopeProvider <- $scope <- AccountSummaryController
- php - VSCode Intelliphense 无法在 Laravel 项目中正常工作
- node.js - 渲染两个单独的 async.each 方法的结果
- java - JavaFX 通过 setOnKeyPressed 更新当前位置
- c# - Xamarin Forms CollectionView 绑定后保持为空
- java - 在复合键上使用“链式”外键时出现问题
- python - 过滤 Div,BeautifulSoup,带空返回
- android - 从与帐户触发器关联的联系人的意图中提取联系人信息