Android Studio 中的 Smack 让我很困惑
Posted
技术标签:
【中文标题】Android Studio 中的 Smack 让我很困惑【英文标题】:Smack in Android Studio really puzzle me 【发布时间】:2015-11-21 05:24:01 【问题描述】:我在更改为 AS 之前使用 Eclipse,但有些事情让我很困惑。 我将 Smack4.1.4 导入 app/libs,并设置依赖项。 一切看起来都不错,无一例外。 原因:
java.lang.ClassNotFoundException: 找不到类 "javax.naming.directory.InitialDirContext"
我搜了一下,好像javax.naming
不在android的白名单里。
那么我如何在 AS 中使用 smack?这对我来说是个大问题。 有人可以帮忙吗?
【问题讨论】:
【参考方案1】:您需要做的是停止导入 jar 文件并开始使用 gradle 来解决依赖关系,这是在 Android Studio 与 Eclipse 中导入库的主要区别,仅在存储库中不可用时才导入 jar:
https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide
例子:
repositories
maven
url 'https://oss.sonatype.org/content/repositories/snapshots'
mavenCentral()
dependencies
compile "org.igniterealtime.smack:smack-android-extensions:4.1.0"
compile "org.igniterealtime.smack:smack-tcp:4.1.0"
【讨论】:
【参考方案2】:好的,现在我解决这个问题。
其实我还需要导入以下jar:
dnsjava:dnsjava
org.jxmpp:jxmpp-core
org.jxmpp:jxmpp-jid
org.jxmpp:jxmpp-util-cache
希望我的回答能帮助像我这样的初学者。 :)
【讨论】:
【参考方案3】:1 天后,我终于在 nativescript android 中解决了这个问题。 不要添加 dnsjava.(version).jar , smack-java7-version.jar 添加 smack-resolver-dnsjava-4.2.1.jar
【讨论】:
以上是关于Android Studio 中的 Smack 让我很困惑的主要内容,如果未能解决你的问题,请参考以下文章
在android中使用smack进行群聊中的“服务器无响应”异常