【问题标题】:Smack in Android Studio really puzzle meAndroid Studio 中的 Smack 让我很困惑
【发布时间】: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?这对我来说是个大问题。 有人可以帮忙吗?

【问题讨论】:

    标签: android android-studio 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:

      1. dnsjava:dnsjava
      2. org.jxmpp:jxmpp-core
      3. org.jxmpp:jxmpp-jid
      4. org.jxmpp:jxmpp-util-cache

      希望我的回答能帮助像我这样的初学者。 :)

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-28
          • 1970-01-01
          • 1970-01-01
          • 2013-06-01
          • 1970-01-01
          相关资源
          最近更新 更多