我的应用程序在com.huawei.agconnect.crash.internal.log.h$b.read上保存了关于ArrayIndexOutOfBoundsException的崩溃报告。我试着四处搜索,但似乎没有得到任何关于这方面的信息。
对于我最近的版本,我更新了我的agconnect库,但仍然得到这个崩溃。以下是版本:
构建。gradle项目
classpath 'com.huawei.agconnect:agcp:1.7.2.300'
构建。gradle应用
implementation 'com.huawei.hms:base:6.6.0.300'
implementation 'com.huawei.agconnect:agconnect-core:1.7.2.300'
implementation 'com.huawei.hms:hianalytics:6.7.0.300'
implementation 'com.huawei.agconnect:agconnect-crash:1.7.2.300'
implementation 'com.huawei.hms:push:6.7.0.300'
implementation 'com.huawei.agconnect:agconnect-remoteconfig:1.7.2.300'
从报告来看,所有的崩溃都是华为设备,90%以上是Android 10。其余都是Android 11。
这是crash分析中显示的堆栈跟踪:
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException:
at com.huawei.agconnect.crash.internal.log.h$b.read(:51)
at com.huawei.agconnect.crash.internal.log.e$1.a(:15)
at com.huawei.agconnect.crash.internal.log.h.a(:21)
at com.huawei.agconnect.crash.internal.log.e.a(:28)
at com.huawei.agconnect.crash.internal.log.f.b(:8)
at com.huawei.agconnect.crash.internal.log.d.a(:215)
at com.huawei.agconnect.crash.internal.log.c.a(:10)
at com.huawei.agconnect.crash.internal.log.a$4.run(:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:929)
不完全确定,但这一行对我来说似乎有问题:
implementation 'com.huawei.hms:base:6.6.0.300'
base
应该使用与其他库相同的HMS版本6.7.0.300
。
如果没有,查明这一点的唯一机会是检查51
行中反编译的类com.huawei.agconnect.crash.internal.log.h$b.read
(大致相同)。
这至少提供了一个线索,它试图访问哪个数组…
尝试将所有华为依赖项更新到6.7.0.300版本。
更新到最新的华为Agconnect后1个月左右,我不再收到此崩溃报告。现在这是我使用的版本:
implementation 'com.huawei.hms:base:6.8.0.300'
implementation 'com.huawei.agconnect:agconnect-core:1.7.3.300'
implementation 'com.huawei.hms:hianalytics:6.8.0.300'
implementation 'com.huawei.agconnect:agconnect-crash:1.7.3.300'
implementation 'com.huawei.hms:push:6.7.0.300'
implementation 'com.huawei.agconnect:agconnect-remoteconfig:1.7.3.300'