Smack in Android Studio真让我感到困惑

时间:2015-11-21 05:24:01

标签: android android-studio smack

我在改用AS之前使用Eclipse,但是有些东西让我很困惑。 我将Smack4.1.4导入app / libs,并设置依赖项。 一切看起来没问题,没有例外。  引起:

  

java.lang.ClassNotFoundException:没找到类   " javax.naming.directory.InitialDirContext"

我搜索过它,似乎javax.naming不在Android的白名单中。

那么我怎么能在AS中使用smack?这对我来说是个大问题。 有人可以帮忙吗?

3 个答案:

答案 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:

  1. dnsjava:dnsjava
  2. org.jxmpp:jxmpp-core
  3. org.jxmpp:jxmpp-jid
  4. org.jxmpp:jxmpp-util-cache
  5. 希望我的回答能帮助像我这样的初学者。 :)

答案 2 :(得分:-1)

1天后,我终于在nativescript android中解决了这个问题。 不要添加dnsjava。(版本).jar,smack-java7-version.jar 添加smack-resolver-dnsjava-4.2.1.jar