OkHttp android 5 crash adcolony and helpshift



仅在Android 5上,某些第三方SDK(Adcolony and Helpshift)随机崩溃(大部分时间刚刚启动时)。在下面的Android 5上,两者都可以正常工作。

它们两个都在

上崩溃

com.android.okhttp.internal.http.javaapiconverter.extractstatusline(javaapiconverter.java:329) com.android.okhttp.internal.http.javaapiconverter.extractstatusline(javaapiconverter.java:324)

HelpShift Crash stacktrace:

java.lang.nullpointerexception:尝试调用接口方法'java.lang.object java.util.map.get(java.lang.object)'null对象引用 com.android.okhttp.internal.http.javaapiconverter.extractstatusline(javaapiconverter.java:329) com.android.okhttp.internal.http.javaapiconverter.extractstatusline(javaapiconverter.java:324) com.android.okhttp.internal.http.javaapiconverter.createokresponse(javaapiconverter.java:116) com.android.okhttp.internal.http.responsecacheadapter.get(wendessecacheadapter.java:53) com.android.okhttp.internal.http.httpengine.sendrequest(httpengine.java:190) com.android.okhttp.internal.http.httpurlconnectionimpl.execute(httpurlConnectionimpl.java:373) com.android.okhttp.internal.http.httpurlconnectionimpl.getResponse(httpurlConnectionImpl.java:323) com.android.okhttp.internal.http.httpurlconnectionimpl.getResponsecode(httpurlConnectionImpl.java:491) com.android.okhttp.internal.http.delegatinghttpsurlconnection.getResponsecode(delegatinghttpsurlConnection.java:105) com.android.okhttp.internal.http.httpsurlconnectionimpl.getResponsecode(httpsurlConnectionImpl.java:25) com.helpshift.support.hsapiclient $ 1.run(hsapiclient.java:318) java.lang.thread.run(thread.java:818)

广告殖民地崩溃堆栈跟踪:

java.lang.nullpointerexception:尝试调用接口方法'java.lang.object java.util.map.get(java.lang.object)'null对象引用 com.android.okhttp.internal.http.javaapiconverter.extractstatusline(javaapiconverter.java:329) com.android.okhttp.internal.http.javaapiconverter.extractstatusline(javaapiconverter.java:324) com.android.okhttp.internal.http.javaapiconverter.createokresponse(javaapiconverter.java:116) com.android.okhttp.internal.http.responsecacheadapter.get(wendessecacheadapter.java:53) com.android.okhttp.internal.http.httpengine.sendrequest(httpengine.java:269) com.android.okhttp.internal.http.httpurlconnectionimpl.execute(httpurlConnectionimpl.java:373) com.android.okhttp.internal.http.httpurlconnectionimpl.connect(httpurlConnectionImpl.java:106) com.android.okhttp.internal.http.httpurlconnectionimpl.getOutputstream(httpurlConnectionImpl.java:208) com.android.okhttp.internal.http.delegatinghttpsurlconnection.getOutputStream(delegatinghttpsurlConnection.java:218) com.android.okhttp.internal.http.httpsurlconnectionimpl.getOutputstream(httpsurlConnectionImpl.java:25) com.jirbo.adcolony.adcownload.run(SourceFile:107) 在java.lang.thread.run(thread.java:818)

任何人都知道如何解决此问题?

您提到的NPE似乎是在okhttp essure for Android 5.0:http://code.google.com/p/android/issues/detail?id=160522

此问题的可能原因:
您可能正在使用自定义响应/第三方响应式,并且它不能正确地实现,并且OKHTTP无法正确处理null响应。

1。如果您不需要响应缓存

此NPE的快速修复 - 通过
禁用连接上的缓存 conn.setUseCaches(false)

2。如果您需要响应缓存

您正在使用什么反应式响应的实现?是Android.net.http.httpresponsecache的Android One,还是第三方?

自定义响应问题的根本原因

根本原因是Android假设状态线(例如指示响应代码的响应的一部分,消息)是用无效的钥匙作为标头。这在API中提到当您以零索引查看标题时,文档,但不是在返回地图的方法中明确说明,或者采用字符串

请参阅此处:http://developer.android.com/reference/java/net/cacheresponse.html#getheaders()

从您提供的StackTrace中,该问题似乎与使用自定义Responsecache有关。如果是这样,您可以禁用缓存,如果不需要,则可以联系上述okhttp问题的自定义响应缓存的维护者。

对于任何其他相关查询,请随时通过support@helpshift.com与我们联系

相关内容

  • 没有找到相关文章

最新更新