首页 > 解决方案 > React-native,好奇的 android 崩溃

问题描述

崩溃发生在第一次发布时,我知道这没什么大不了的。但是 Metro 启动并运行,应用程序出现了片刻,然后立即崩溃,没有 JS 日志。

我们看到的一些崩溃报告如下所示

java_vm_ext.cc:589] JNI DETECTED ERROR IN APPLICATION: negative jsize: -858993458
java_vm_ext.cc:589]     in call to NewObjectArray
java_vm_ext.cc:589]     from java.lang.Object[] com.facebook.react.bridge.ReadableNativeArray.importArray()
untime.cc:660] Runtime aborting...
runtime.cc:660] Dumping all threads without mutator lock held
runtime.cc:660] All threads:
runtime.cc:660] DALVIK THREADS (80):
runtime.cc:660] "main" prio=7 tid=1 Runnable
runtime.cc:660]   | group="" sCount=0 dsCount=0 flags=0 obj=0x72b06fc8 self=0x7c34d10c00
runtime.cc:660]   | sysTid=12314 nice=-4 cgrp=default sched=0/0 handle=0x7c36275ed0
runtime.cc:660]   | state=R schedstat=( 19734102732 12676926316 23204 ) utm=1617 stm=355 core=5 HZ=100
runtime.cc:660]   | stack=0x7fef9f0000-0x7fef9f2000 stackSize=8192KB
runtime.cc:660]   | held mutexes= "abort lock" "mutator lock"(shared held)
runtime.cc:660]   native: #00 pc 000000000040ec24  /apex/com.android.runtime/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+140)
runtime.cc:660]   native: #01 pc 00000000004f3c78  /apex/com.android.runtime/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+508)
runtime.cc:660]   native: #02 pc 000000000050e04c  /apex/com.android.runtime/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+820)
runtime.cc:660]   native: #03 pc 00000000005070ec  /apex/com.android.runtime/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+456)
runtime.cc:660]   native: #04 pc 0000000000506544  /apex/com.android.runtime/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool)+1816)
runtime.cc:660]   native: #05 pc 00000000004b455c  /apex/com.android.runtime/lib64/libart.so (art::Runtime::Abort(char const*)+1456)
runtime.cc:660]   native: #06 pc 000000000000c5b4  /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+608)
runtime.cc:660]   native: #07 pc 000000000037540c  /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1592)
runtime.cc:660]   native: #08 pc 00000000003755c0  /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+108)
runtime.cc:660]   native: #09 pc 0000000000367b3c  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+136)
runtime.cc:660]   native: #10 pc 0000000000367828  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckNonHeapValue(char, art::(anonymous namespace)::JniValueType)+660)
runtime.cc:660]   native: #11 pc 000000000036620c  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+192)
runtime.cc:660]   native: #12 pc 0000000000365990  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+624)
runtime.cc:660]   native: #13 pc 000000000035cf38  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::CheckJNI::NewObjectArray(_JNIEnv*, int, _jclass*, _jobject*)+684)
runtime.cc:660]   native: #14 pc 0000000000086e5c  /data/app/com.greenmile.highthere-awnZjy_w_3CkJCtGGDAadA==/lib/arm64/libreactnativejni.so (facebook::jni::JArrayClass<_jobject*>::newArray(unsigned long)+88)
runtime.cc:660]   native: #15 pc 0000000000086c7c  /data/app/com.greenmile.highthere-awnZjy_w_3CkJCtGGDAadA==/lib/arm64/libreactnativejni.so (facebook::react::ReadableNativeArray::importArray()+72)

标签: androidreact-native

解决方案


推荐阅读