首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >okHttp3 java.lang.NoSuchMethodError:无虚拟方法setCallWebSocket

okHttp3 java.lang.NoSuchMethodError:无虚拟方法setCallWebSocket
EN

Stack Overflow用户
提问于 2017-02-13 16:48:07
回答 4查看 8K关注 0票数 5

我已经从okhttp +改装升级到了okhttp3 + retrofit2,但是我的应用程序并没有启动这个异常。

代码语言:javascript
复制
FATAL EXCEPTION: EventThread
Process: appli.speaky.com, PID: 14705
java.lang.NoSuchMethodError: No virtual method setCallWebSocket(Lokhttp3/Call;)V in class Lokhttp3/internal/Internal; or its super classes (declaration of 'okhttp3.internal.Internal' appears in /data/data/appli.example.com/files/instant-run/dex/slice-okhttp-3.6.0_29bb10e5f590229716bfa8daf196d09ea67f56a8-classes.dex)
    at okhttp3.ws.WebSocketCall.enqueue(WebSocketCall.java:108)
    at io.socket.engineio.client.transports.WebSocket.doOpen(WebSocket.java:84)
    at io.socket.engineio.client.Transport$1.run(Transport.java:82)
    at io.socket.thread.EventThread.exec(EventThread.java:55)
    at io.socket.engineio.client.Transport.open(Transport.java:77)
    at io.socket.engineio.client.Socket.probe(Socket.java:472)
    at io.socket.engineio.client.Socket.onOpen(Socket.java:485)
    at io.socket.engineio.client.Socket.onHandshake(Socket.java:526)
    at io.socket.engineio.client.Socket.onPacket(Socket.java:499)
    at io.socket.engineio.client.Socket.access$1000(Socket.java:31)
    at io.socket.engineio.client.Socket$5.call(Socket.java:313)
    at io.socket.emitter.Emitter.emit(Emitter.java:117)
    at io.socket.engineio.client.Transport.onPacket(Transport.java:134)
    at io.socket.engineio.client.transports.Polling.access$700(Polling.java:17)
    at io.socket.engineio.client.transports.Polling$2.call(Polling.java:124)
    at io.socket.engineio.parser.Parser.decodePayload(Parser.java:251)
    at io.socket.engineio.client.transports.Polling._onData(Polling.java:134)
    at io.socket.engineio.client.transports.Polling.onData(Polling.java:106)
    at io.socket.engineio.client.transports.PollingXHR$5$1.run(PollingXHR.java:111)
    at io.socket.thread.EventThread$2.run(EventThread.java:80)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    at java.lang.Thread.run(Thread.java:761)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-01 06:06:06

我也有同样的问题。问题是我使用的是socket 0.8.0,我认为它与实现有冲突。

升级到最新版本的socket.io

代码语言:javascript
复制
compile('io.socket:socket.io-client:0.8.3') {
    exclude group: 'org.json', module: 'json'
}

也可以使用OKHTTP的最新版本(不需要包括okhttp)。

代码语言:javascript
复制
compile "com.squareup.okhttp3:okhttp:3.7.0"
compile "com.squareup.okhttp3:logging-interceptor:3.7.0"

我的应用程序没有在第一次加载时崩溃,而是连接到套接字。拦截器也没有任何冲突,并正在日志记录预期在logcat上。

有了这一点,就没有必要降低您的okHTTP版本的级别,因为它在过去一直是工作解决方案。:)

票数 5
EN

Stack Overflow用户

发布于 2017-07-07 02:48:52

你好,我有同样的问题,就在几天前(我的应用程序是一个反应-本机),我只是使用3.4.1版本来取代最新的,并解决了它!

代码语言:javascript
复制
compile "com.squareup.okhttp3:okhttp:3.4.1"
compile "com.squareup.okhttp3:logging-interceptor:3.4.1"

我想这是由Retrofit2 2的okhttp引起的。

票数 5
EN

Stack Overflow用户

发布于 2018-07-17 17:27:27

在启动之后,甚至在关闭分析器之后,我也遇到了这个问题。必须重新启动Android来修复它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42209251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档