使用QueryFirst导致本机崩溃的对象框

时间:2020-04-24 20:05:01

标签: android crashlytics-android objectbox

由于我从本地数据库请求数据,因此我的应用程序启动后,我立即收到以下本机崩溃日志(只能通过PlayStore而不是Crashlytics获取): 唯一向我显示一些信息的行是:

6个0000000000043688 /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/base.apk!libobjectbox-jni.so (偏移量0x37e000)(Java_io_objectbox_query_Query_nativeFindFirst + 68)

这是完整的回溯记录:

pid: 0, tid: 0 >>> br.com.ampli <<<

backtrace:
  #00  pc 0000000000083134  /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)
  #01  pc 00000000004b3c08  /apex/com.android.runtime/lib64/libart.so (art::Runtime::Abort(char const*)+2376)
  #02  pc 000000000000c5b4  /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+608)
  #03  pc 0000000000374a94  /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1592)
  #04  pc 00000000003a74c8  /apex/com.android.runtime/lib64/libart.so (art::JNI::SetObjectField(_JNIEnv*, _jobject*, _jfieldID*, _jobject*)+924)
  #05  pc 00000000000262a4  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/base.apk!libobjectbox-jni.so (offset 0x37e000)
  #06  pc 0000000000043688  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/base.apk!libobjectbox-jni.so (offset 0x37e000) (Java_io_objectbox_query_Query_nativeFindFirst+68)
  #07  pc 000000000003fb7c  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/oat/arm64/base.odex (art_jni_trampoline+140)
  #08  pc 0000000000137334  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548)
  #09  pc 000000000014606c  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+244)
  #10  pc 00000000002e0cd0  /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384)
  #11  pc 00000000002dbfb0  /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912)
  #12  pc 00000000005a030c  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtualQuick+596)
  #13  pc 0000000000135594  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
  #14  pc 000000000047941c  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/oat/arm64/base.vdex (io.objectbox.query.Query$a.call+28)
  #15  pc 000000000059bbe4  /apex/com.android.runtime/lib64/libart.so (MterpInvokeInterface+1740)
  #16  pc 0000000000131a14  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_interface+20)
  #17  pc 0000000000476786  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/oat/arm64/base.vdex (io.objectbox.BoxStore.a+42)
  #18  pc 00000000005a0610  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtualQuick+1368)
  #19  pc 0000000000135594  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
  #20  pc 0000000000476886  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/oat/arm64/base.vdex (io.objectbox.BoxStore.a+6)
  #21  pc 00000000005a0610  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtualQuick+1368)
  #22  pc 0000000000135594  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
  #23  pc 0000000000479a40  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/oat/arm64/base.vdex (io.objectbox.query.Query.d+40)
  #24  pc 00000000005a0610  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtualQuick+1368)
  #25  pc 0000000000135594  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
  #26  pc 00000000002442c6  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/oat/arm64/base.vdex (e.a.a.j1.d.a$a.d+54)
  #27  pc 00000000005a0610  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtualQuick+1368)
  #28  pc 0000000000135594  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
  #29  pc 000000000047fe9a  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/oat/arm64/base.vdex (b1.p.i.a.a.c+18)
  #30  pc 000000000059bbe4  /apex/com.android.runtime/lib64/libart.so (MterpInvokeInterface+1740)
  #31  pc 0000000000131a14  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_interface+20)
  #32  pc 000000000048797e  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/oat/arm64/base.vdex (a0.a.p0.run+214)
  #33  pc 000000000059bbe4  /apex/com.android.runtime/lib64/libart.so (MterpInvokeInterface+1740)
  #34  pc 0000000000131a14  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_interface+20)
  #35  pc 000000000048fcd4  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/oat/arm64/base.vdex (a0.a.c2.b.a)
  #36  pc 00000000005a0610  /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtualQuick+1368)
  #37  pc 0000000000135594  /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
  #38  pc 000000000048ee5e  /data/app/br.com.ampli-A-oKgSqV0pfD7IL5xQWvwQ==/oat/arm64/base.vdex (a0.a.c2.b$a.run+534)
  #39  pc 00000000002b191c  /apex/com.android.runtime/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.18252570399552585066)+240)
  #40  pc 000000000058b6e8  /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012)
  #41  pc 0000000000140468  /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88)
  #42  pc 0000000000137334  /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548)
  #43  pc 000000000014606c  /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+244)
  #44  pc 00000000004ab72c  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
  #45  pc 00000000004ac7c0  /apex/com.android.runtime/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+416)
  #46  pc 00000000004ecb00  /apex/com.android.runtime/lib64/libart.so (art::Thread::CreateCallback(void*)+1176)
  #47  pc 00000000000e28c0  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36)
  #48  pc 000000000008503c  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

它从无处开始,当我升级到“ 1.1.0”时,我在我的应用程序版本“ 1.0.2”上运行得很好。我没有更改任何实体上的任何属性。 首先我以为是扩展功能查询首先使用:

inline fun <reified T : Any> BoxStore.queryFirst(model: T): T? {
    return this.boxFor(model::class.java).query().build().findFirst()
}

因此,我已将其上的所有通话更改为默认通话:

BoxStore.getDefault().boxFor(Course::class.java).query().build().findFirst()

但是它没有解决问题,所以我走得更远,将所有findFirst更改为all [0]

inline fun <reified T : Any> BoxStore.queryFirst(model: T): T? {
    return try {
        boxFor(model::class.java).all[0]
    } catch (e: Exception) {
        null
    }
}

它也没有解决,但是错误消息行更改为:

#23 pc 000000000001c903 /data/app/br.com.ampli-VLlxlv9pljML2jxVG8UJkw == / base.apk(偏移 0x4ea000)(Java_io_objectbox_Cursor_nativeFirstEntity + 38)#24个 000000000003f38f /data/app/br.com.ampli-VLlxlv9pljML2jxVG8UJkw==/oat/arm/base.odex (偏移量0x3f000)(io.objectbox.BoxStore.nativeDiagnose [DEDUPED] +102)

某些特定设备正在发生这种情况,我的所有团队都测试了我的发布版本,并且工作正常

这是出现问题的设备列表:

  • 三星Galaxy S9 +(star2qltechn),5632MB RAM,Android 10
  • Motorola moto g(7)(河流),3584MB RAM,Android 9
  • Motorola motorola one vision(kane_sprout),3840MB RAM,Android 10
  • Motorola Moto X(4)(付费),2816MB RAM,Android 9
  • Redmi Redmi Note 8(银杏),3840MB RAM,Android 9
  • 三星Galaxy A30s(a30s),3840MB RAM,Android 10
  • Motorola motorola one vision(kane_sprout),3840MB RAM,Android 10

由于我们没有太多的用户,因此每次崩溃都很重要

我已经打开并在此处发布:https://github.com/objectbox/objectbox-java/issues/851,以获取更多信息。

如果有人对该做什么有任何想法,请多谢,谢谢。

0 个答案:

没有答案