我在改用AS之前使用Eclipse,但是有些东西让我很困惑。 我将Smack4.1.4导入app / libs,并设置依赖项。 一切看起来没问题,没有例外。 引起:
java.lang.ClassNotFoundException:没找到类 " javax.naming.directory.InitialDirContext"
我搜索过它,似乎javax.naming
不在Android的白名单中。
那么我怎么能在AS中使用smack?这对我来说是个大问题。 有人可以帮忙吗?
答案 0 :(得分:2)
您需要做的是停止导入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"
}
答案 1 :(得分:0)
好的,现在我解决了这个问题。
实际上,我还需要导入以下jar:
dnsjava:dnsjava
org.jxmpp:jxmpp-core
org.jxmpp:jxmpp-jid
org.jxmpp:jxmpp-util-cache
希望我的回答能帮助像我这样的初学者。 :)
答案 2 :(得分:-1)
1天后,我终于在nativescript android中解决了这个问题。 不要添加dnsjava。(版本).jar,smack-java7-version.jar 添加smack-resolver-dnsjava-4.2.1.jar