2017-02-13 8 views
3

私はokhttp + okhttp3 + retrofit2に改造から更新されましたが、私のアプリはokHttp3 java.lang.NoSuchMethodErrorの:いいえ仮想メソッドsetCallWebSocket

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) 

答えて

2

私も同じ問題がありました。問題は、ソケット0.8.0を使用していて、OKHTTP websocket implemと競合していると思います。 socket.io

compile('io.socket:socket.io-client:0.8.3') { 
    exclude group: 'org.json', module: 'json' 
} 

とも私のアプリがあるOKHTTP の最新バージョン(okhttp-WS含めるする必要はありません)

compile "com.squareup.okhttp3:okhttp:3.7.0" 
compile "com.squareup.okhttp3:logging-interceptor:3.7.0" 

を使用して、最新バージョンにアップグレードする際に

最初の負荷でクラッシュせず、ソケットに接続しています。インターセプタも矛盾がなく、logcatに期待どおりにログを記録しています。

これで、これまで実用的な解決策であったバージョンのokHTTPをダウングレードする必要はありません。 :)

0

この例外の原因を開始しません。私は、同様の問題がありました。私のプロジェクトの問題は、setCallWebSocketメソッドを持たないokhttp-3.3.1を使用していたことでした。

あなたのgradleに正しいバージョンのokhttpを追加してください。また、setCallWebSocketを持たない古いバージョンはプロジェクトライブラリや依存関係のどこにも含まれていません。

1

そこにこんにちは、私はわずか数日前に同じ問題を持っている(私のアプリが反応し、ネイティブで)、私は、最新のを置き換えるために、3.4.1バージョンを使用し、それを解決!

compile "com.squareup.okhttp3:okhttp:3.4.1" 
compile "com.squareup.okhttp3:logging-interceptor:3.4.1" 

と私はRetrofit2のokhttpのlibによって引き起こされると思います

関連する問題