线程“主”java.lang.NoSuchFieldError 中的异常:如果可能

Posted

技术标签:

【中文标题】线程“主”java.lang.NoSuchFieldError 中的异常:如果可能【英文标题】:Exception in thread "main" java.lang.NoSuchFieldError: ifpossible 【发布时间】:2016-09-06 10:40:34 【问题描述】:

我正在尝试使用 Smack 库建立 XMPP 连接。使用版本 4.2.0-beta2(smack-core) 和 4.1.8(smack-tcp)

public void gcmConnect()

    try

    XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder().setHost(GCM_SERVER)
            .setPort(GCM_PORT).setUsernameAndPassword("27614215340@gcm.googleapis.com", API_KEY).build();

    XMPPTCPConnection connection = new XMPPTCPConnection(config);
    connection.connect();

    System.out.println("Connected");

    
    catch(XMPPException ex)
    
        ex.printStackTrace();
    
    catch (Exception e) 
        e.printStackTrace();
    


public static void main(String[] args) 
    XMPPConnectionTest obj = new XMPPConnectionTest();
    obj.gcmConnect();

它给出了以下错误

Exception in thread "main" java.lang.NoSuchFieldError: ifpossible
at org.jivesoftware.smack.ConnectionConfiguration$Builder.<init>(ConnectionConfiguration.java:438)
at org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration$Builder.<init>(XMPPTCPConnectionConfiguration.java:91)
at org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration$Builder.<init>(XMPPTCPConnectionConfiguration.java:87)
at org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration.builder(XMPPTCPConnectionConfiguration.java:80)
at com.inn.foresight.gcm.XMPPConnectionTest.gcmConnect(XMPPConnectionTest.java:32)
at com.inn.foresight.gcm.XMPPConnectionTest.main(XMPPConnectionTest.java:53)

【问题讨论】:

【参考方案1】:

这些是得到这个Exception的可能原因

1。您可能使用一个版本的库进行编译,但在运行时使用另一个版本。您必须验证您的 classpath 是否包含指定库的正确版本。

2。您可能使用了两个版本的jar

3。 jar文件不完整

【讨论】:

非常感谢! :) 类路径有问题。 永远欢迎。如果有帮助,请接受答案:)

以上是关于线程“主”java.lang.NoSuchFieldError 中的异常:如果可能的主要内容,如果未能解决你的问题,请参考以下文章

主线程啥都没做,就会等待子线程结束。这是为啥?

Android 异步操作Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )

子线程怎么不阻塞主线程

QT中UI主窗口如何与子线程相互传递参数

java 子线程 回调 主线程

C++怎么在主线程中使用子线程的数据? 比如说主线程中有一个数组,如何在子线程中调用这个数组