打开我的应用程序时,有时应用程序会崩溃。

3

突然有一次打开我的应用程序时崩溃了,我上传了下面的崩溃日志。但它只是偶尔出现,并不是每次和每个设备都会发生。

有人能帮我理解这个崩溃日志以及为什么有时会发生在某些设备上吗?以下是此崩溃的主要原因是什么?

            Revision: '14'
            ABI: 'arm'
            pid: 1834, tid: 8022, name: pool-3-thread-1 >>> com.example <<<
            signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
            Abort message: 'art/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: java_array == null'
            r0 00000000 r1 00001f56 r2 00000006 r3 00000000
            r4 942bfdb8 r5 00000006 r6 00000002 r7 0000010c
            r8 00000000 r9 b4e4f520 sl af17a800 fp 00000965
            ip 00001f56 sp 942bf498 lr b6f26fd5 pc b6f4aeb4 cpsr 60070010


    backtrace:
    #00 pc 00037eb4 /system/lib/libc.so (tgkill+12)
    #01 pc 00013fd1 /system/lib/libc.so (pthread_kill+52)
    #02 pc 00014bef /system/lib/libc.so (raise+10)
    #03 pc 00011531 /system/lib/libc.so (__libc_android_abort+36)
    #04 pc 0000fcbc /system/lib/libc.so (abort+4)
    #05 pc 0021d161 /system/lib/libart.so (art::Runtime::Abort()+160)
    #06 pc 000a831b /system/lib/libart.so (art::LogMessage::~LogMessage()+1322)
    #07 pc 000b1a49 /system/lib/libart.so (art::JniAbort(char const*, char const*)+1060)
    #08 pc 000b1fa5 /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+60)
    #09 pc 001be127 /system/lib/libart.so (art::JNI::GetArrayLength(_JNIEnv*, _jarray*)+570)
    #10 pc 00001171 /data/app/com.example-1/lib/arm/library.so (Java_com_example_value_encypt+48)
    #11 pc 004986f9 /data/dalvik-cache/arm/data@app@com.example-1@base.apk@classes.dex

你的应用程序中有一些NDK代码吗?(本地C++代码) - Kelevandos
@Kelevandos,没有名为'java_array'的变量。NDK仅调用GetArrayLength方法。 - user3546693
好的,那么在该方法上进行空值检查,如果引用为空,则返回0。 - Kelevandos
即使我进行了空值检查,仍然出现了相同的错误@Kelevandos。 - user3546693
你确定它只在这一个地方被访问吗? - Kelevandos
显示剩余3条评论
1个回答

0
这种崩溃也发生在我的应用上。我无法通过日志找出原因。有一次,我得到了一个它崩溃的设备,并发现它是在我清除WebView缓存的地方崩溃的。问题是执行此操作的功能已被弃用,所以在大多数手机上它可以工作,而在另外一些手机上则会崩溃。由于这可能甚至发生在Crashlytics初始化之前,除了来自Play Store类似日志的报告之外,我没有收到任何实际的崩溃报告。
我建议的是,从Play Store检查设备型号,并尝试获取其中的一个设备并查看logcat崩溃报告,因为它将指向实际问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接