简体   繁体   English

java.lang.NoClassDefFoundError:解析失败:Ljavax / naming / directory / InitialDirContext;

[英]java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/naming/directory/InitialDirContext;

I'm trying to build a chat application with XMPP protocol using Smack library in android studio. 我正在尝试使用Android工作室中的Smack库使用XMPP协议构建聊天应用程序。 by using Smack version 3.1.0 I could easily connect to open fire server and even I sent a message to a user that were logged in by spark. 通过使用Smack 3.1.0版本,我可以轻松连接到开放式服务器,甚至我向用户发送了一条由spark登录的消息。 but I could never receive a message from that user because the processMessage of MessageListener ran just once in compile. 但是我永远无法收到来自该用户的消息,因为MessageListener的processMessage在编译时只运行了一次。 as I couldn't get the favorite result I searched over the internet and find out that smack from version 4.1 or upper just support in android. 因为我无法得到最喜欢的结果,我通过互联网搜索并发现从版本4.1或上层刚刚支持android。

so I tried to build my app with smack 4.1.4 and resolve many errors. 所以我尝试使用smack 4.1.4构建我的应用程序并解决许多错误。 but one error didn't resolved and I couldn't find it on the internet. 但是一个错误没有解决,我在互联网上找不到它。 that's it (of course there are too many more errors but I bring the top 4): 就是这样(当然有太多的错误,但我带来了前4名):

11-10 00:16:03.446 15512-15539/xmppconnectiontest2.ffisher.com.xmpp2  E/AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/naming/directory/InitialDirContext;
11-10 00:41:36.169 19859-19886/xmppconnectiontest2.ffisher.com.xmpp2 E/AndroidRuntime:     at org.jivesoftware.smack.util.dns.javax.JavaxResolver.<clinit>(JavaxResolver.java:50)
11-10 00:41:36.169 19859-19886/xmppconnectiontest2.ffisher.com.xmpp2 E/AndroidRuntime:     at java.lang.Class.classForName(Native Method)
11-10 00:41:36.169 19859-19886/xmppconnectiontest2.ffisher.com.xmpp2 E/AndroidRuntime:     at java.lang.Class.forName(Class.java:308)

as the documents of igniterealtime said I add all of necessary libraries. 正如igniterealtime的文件说我添加了所有必要的库。 this is my dependencies in Gradle : 这是我在Gradle中的依赖:

compile 'org.igniterealtime.smack:smack-core:4.1.4'
compile 'org.igniterealtime.smack:smack-tcp:4.1.4'
compile 'org.igniterealtime.smack:smack-extensions:4.1.4'
compile 'org.igniterealtime.smack:smack-resolver-javax:4.1.4'
compile 'org.igniterealtime.smack:smack-bosh:4.1.4'
compile 'org.igniterealtime.smack:smack-resolver-dnsjava:4.1.4'
compile 'org.igniterealtime.smack:smack-legacy:4.1.4'
compile 'org.igniterealtime.smack:smack-experimental:4.1.4'
compile 'org.igniterealtime.smack:smack-jingle-old:4.1.4'
compile 'org.igniterealtime.smack:smack-debug:4.1.4'

the main activity onCreate : 关于创建的主要活动:

 Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            String [] param = {"mhs", "10.0.2.2"};
            Asynchron asynchron = (Asynchron) new Asynchron();
            asynchron.doInBackground(param);
        }
    });
    t.start();

the sub class of AsyncTask that I used : 我使用的AsyncTask的子类:

public class Asynchron extends AsyncTask <String, Void, Void>
{

    @Override
    protected Void doInBackground(String... params) {

        XMPPTCPConnectionConfiguration.Builder builder = XMPPTCPConnectionConfiguration.builder();

        builder.setServiceName(params[0]);

        builder.setHost(params[1]);

        builder.setPort(5222);

  builder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);

        builder.setDebuggerEnabled(true);

        builder.setCompressionEnabled(true);

        connection = new XMPPTCPConnection(builder.build());
        SASLAuthentication.blacklistSASLMechanism("DIGEST-MD5");

        try {
            connection.connect();
            connection.login("testUser1", "1234");

        } catch (SmackException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (XMPPException e) {
            e.printStackTrace();
        }

        return null;
    }
}

I really need your help. 我真的需要你的帮助。 how can I resolve the error I wrote in title of question? 如何解决我在问题标题中写的错误?

just use : 只需使用:

compile "org.igniterealtime.smack:smack-android-extensions:4.1.0"
compile "org.igniterealtime.smack:smack-experimental:4.1.0"
compile "org.igniterealtime.smack:smack-tcp:4.1.0"

and remove builder.setCompressionEnabled(true); 并删除builder.setCompressionEnabled(true);

Delete smack-resolver-javax in your dependencies. 删除依赖项中的smack-resolver-javax。 Probably that jar is overriding some legacy classes 可能那个jar正在覆盖一些遗留类

只需使用smack-tcpsmack-experimentalsmack-android-extensions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.lang.NoClassDefFoundError:解析失败 - java.lang.NoClassDefFoundError: Failed resolution java.lang.NoClassDefFoundError:无法解决以下问题:Ljava / lang / invoke / MethodType; - java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/invoke/MethodType; Bean初始化失败; 嵌套的异常是java.lang.NoClassDefFoundError:Ljavax / enterprise / concurrent / ManagedThreadFactory - Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: Ljavax/enterprise/concurrent/ManagedThreadFactory java.lang.NoClassDefFoundError:解析失败:Ljava/time/LocalDate; 错误 - java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/LocalDate; error java.lang.NoClassDefFoundError:解析失败:Landroid / webkit / SafeBrowsingResponse - java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/SafeBrowsingResponse java.lang.noClassDefFoundError:无法解决以下问题:Lcom / facebook / R $ style; - java.lang.noClassDefFoundError: Failed resolution of: Lcom/facebook/R$style; Java.lang.NoClassDefFoundError:解析失败:Lcom/google/firebase/FirebaseApp - Java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/FirebaseApp java.lang.NoClassDefFoundError:解析失败:Landroid/graphics/BlendModeColorFilter; - java.lang.NoClassDefFoundError: Failed resolution of: Landroid/graphics/BlendModeColorFilter; java.lang.NoClassDefFoundError:解析失败:Ljava/time/Instant; - java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/Instant; Android ButterKnife java.lang.NoClassDefFoundError:无法解决以下问题:Lbutterknife / ButterKnife - Android ButterKnife java.lang.NoClassDefFoundError: Failed resolution of: Lbutterknife/ButterKnife
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM