java.lang.NoSuchMethodError: No

2019-02-22  本文已影响0人  一份土豆

情况概述

对一个项目进行埋点操作,在埋点之前没有任何问题,但是埋点之后发现程序直接奔溃

报错堆栈信息:

java.lang.NoSuchMethodError: No virtual method startsWith(Lokio/ByteString;)Z in class Lokio/ByteString; or its super classes (declaration of 'okio.ByteString' appears in /data/app/包名/split_lib_dependencies_apk.apk)
at okhttp3.internal.http2.Hpack$Writer.writeHeaders(Hpack.java:511)
at okhttp3.internal.http2.Http2Writer.headers(Http2Writer.java:299)
at okhttp3.internal.http2.Http2Writer.synStream(Http2Writer.java:127)
at okhttp3.internal.http2.Http2Connection.newStream(Http2Connection.java:230)
at okhttp3.internal.http2.Http2Connection.newStream(Http2Connection.java:205)
at okhttp3.internal.http2.Http2Codec.writeRequestHeaders(Http2Codec.java:106)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:46)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)等等

解决问题

查看错误,大概意思就是找不到类Lokio/ByteString,或者它的父类, 'okio.ByteString'声明的问题,主要堆栈来源于okhttp3,小豆尝试全局搜索Lokio类,未曾使用过,搜索ByteString类,使用到了但是发现未被导入,找不到关于okhttp包,但是着实是添加了okhttp jar包的,如下:


jar包.png

让人纳闷,之前app也没有任何问题,集成用于埋点的第三方sdk后,出现了找不到okhttp的问题,于是听从朋友建议,将添加jar包的方式在对应模块中换成依赖方式,如下:

compile 'com.squareup.okhttp:okhttp:2.7.0'
compile 'com.squareup.okio:okio:1.10.0'

完美解决!!

总结

查阅资料时,看到网上有朋友写到:

Java.lang.NoSuchMethodError: 后带 V/Z等字母的 错误,一般都是 jar包冲突引起的

现在想想,可能埋点第三方也存在这个jar包吧,才导致冲突的。
解决问题参考链接:
https://blog.csdn.net/qq_37299249/article/details/73149512
https://blog.csdn.net/zhaipengfei1231/article/details/78200869
其他朋友有更好的想法,请帮小豆多多指导哦。

上一篇下一篇

猜你喜欢

热点阅读