微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java.lang.ArrayIndexOutOfBoundsException 与 okhttp 和 adobe 分析 http 连接相关的 Android 崩溃

如何解决java.lang.ArrayIndexOutOfBoundsException 与 okhttp 和 adobe 分析 http 连接相关的 Android 崩溃

我已经开始看到 Firebase 测试实验室在使用我们的 React Native 应用程序的许多设备(Pixel API 25 上的这个)上报告了以下崩溃。我在 1 月底测试该应用程序时没有报告这一点,并且在那段时间我没有对任何 SDK/软件包进行任何更改,尽管我注意到 com.adobe.marketing.mobile:sdk-core ( 1.6.0)在二月。我已经尝试过这个版本,并回滚到早期版本,并将最新版本的 okhttp 和 okio 添加到我的依赖项中,但问题仍然存在。

我还注意到 android core 1.6.0 的发行说明中提到了以下问题的修复:

由 Android okhttp 库抛出的异常导致的崩溃

我想知道这是否是我遇到的问题,但我使用的依赖项的某些组合意味着我没有得到这个修复。

致命异常:ADBMobileBackgroundThread

java.lang.Arrayindexoutofboundsexception: length=8192; index=8192
    at com.android.okhttp.okio.Buffer.writeByte(Buffer.java:973)
    at com.android.okhttp.internal.Platform.concatLengthPrefixed(Platform.java:130)
    at com.android.okhttp.internal.Platform.configureTlsExtensions(Platform.java:84)
    at com.android.okhttp.Connection.connectTls(Connection.java:230)
    at com.android.okhttp.Connection.connectSocket(Connection.java:199)
    at com.android.okhttp.Connection.connect(Connection.java:172)
    at com.android.okhttp.Connection.connectAndSetowner(Connection.java:367)
    at com.android.okhttp.OkHttpClient$1.connectAndSetowner(OkHttpClient.java:130)
    at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:329)
    at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126)
    at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)
    at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java)
    at com.adobe.marketing.mobile.httpconnectionHandler.a()
    at com.adobe.marketing.mobile.AndroidNetworkService.c()
    at com.adobe.marketing.mobile.AndroidNetworkService.b()
    at com.adobe.marketing.mobile.AnalyticsHitsDatabase.l()
    at com.adobe.marketing.mobile.AnalyticsHitsDatabase.i()
    at com.adobe.marketing.mobile.AnalyticsHitsDatabase.a()
    at com.adobe.marketing.mobile.HitQueue$1.run()
    at java.lang.Thread.run(Thread.java:761)

app\build.gradle

    implementation 'com.adobe.marketing.mobile:analytics:1.+'
    implementation 'com.adobe.marketing.mobile:userprofile:1.+'
    implementation 'com.adobe.marketing.mobile:sdk-core:1.+'

package.json

  "dependencies": {
    "@adobe/react-native-acpanalytics": "^1.3.0","@adobe/react-native-acpcore": "^1.5.0",...
  }

解决方法

您的数组长度为 8192,另一方面,您试图从 8192 索引中选取数据,但您的数组有 0 到 8191 个索引。所以 8192 索引不存在并且您的应用程序崩溃

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。