JNI在应用程序中检测到错误:jarray是NULL - 我的代码与否?

时间:2018-05-14 19:43:49

标签: android java-native-interface native

目前正在开发一个包含C中的小型本机代码部分的Android应用程序,我有一个JNI错误,我不知道它是否与我的代码相关。

我读了logcat,但我肯定不确定问题是由于我的代码造成的。 logcat中的内容是什么?

以下是我认为相关的logcat部分:

05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534] JNI DETECTED ERROR IN APPLICATION: jarray was NULL
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]     in call to GetIntArrayElements
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534] "Jit thread pool worker thread 0" daemon prio=5 tid=2 Runnable
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   | group="main" sCount=0 dsCount=0 flags=0 obj=0x15600000 self=0x9b615600
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   | sysTid=4571 nice=9 cgrp=default sched=0/0 handle=0x9b8c5970
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   | state=R schedstat=( 266149744 1857862073 357 ) utm=9 stm=17 core=1 HZ=100
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   | stack=0x9b7c7000-0x9b7c9000 stackSize=1022KB
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   | held mutexes= "mutator lock"(shared held)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #00 pc 0047ead1  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*)+209)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #01 pc 0057c183  /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+355)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #02 pc 00577683  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+83)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #03 pc 00395246  /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1254)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #04 pc 003956b1  /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, char*)+113)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #05 pc 0014f207  /system/lib/libart.so (art::ScopedCheck::AbortF(char const*, ...)+71)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #06 pc 0014e42d  /system/lib/libart.so (art::ScopedCheck::CheckArray(art::ScopedObjectAccess&, _jarray*)+285)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #07 pc 0014dc4a  /system/lib/libart.so (art::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::JniValueType)+170)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #08 pc 0014cf85  /system/lib/libart.so (art::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::JniValueType*)+853)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #09 pc 00158f9e  /system/lib/libart.so (art::CheckJNI::GetPrimitiveArrayElements(char const*, art::Primitive::Type, _JNIEnv*, _jarray*, unsigned char*)+942)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #10 pc 0014522f  /system/lib/libart.so (art::CheckJNI::GetIntArrayElements(_JNIEnv*, _jintArray*, unsigned char*)+47)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #11 pc 0001a98a  /system/lib/libopenjdkjvmti.so (openjdkjvmti::JvmtiAllocationListener::ObjectAllocated(art::Thread*, art::ObjPtr<art::mirror::Object>*, unsigned int)+538)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #12 pc 0012ed69  /system/lib/libart-compiler.so (_ZN3art2gc4Heap24AllocObjectWithAllocatorILb1ELb1ENS_6mirror16SetLengthVisitorEEEPNS3_6ObjectEPNS_6ThreadENS_6ObjPtrINS3_5ClassEEEjNS0_13AllocatorTypeERKT1_+1961)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #13 pc 001895f1  /system/lib/libart-compiler.so (art::mirror::ObjectArray<art::mirror::Object>::Alloc(art::Thread*, art::ObjPtr<art::mirror::Class>, int, art::gc::AllocatorType)+129)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #14 pc 00186583  /system/lib/libart-compiler.so (art::OptimizingCompiler::JitCompile(art::Thread*, art::jit::JitCodeCache*, art::ArtMethod*, bool, art::jit::JitLogger*)+2147)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #15 pc 000e1d83  /system/lib/libart-compiler.so (art::jit::JitCompiler::CompileMethod(art::Thread*, art::ArtMethod*, bool)+163)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #16 pc 000e1cd7  /system/lib/libart-compiler.so (jit_compile_method+55)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #17 pc 003b8b3f  /system/lib/libart.so (art::jit::Jit::CompileMethod(art::ArtMethod*, art::Thread*, bool)+303)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #18 pc 003bb982  /system/lib/libart.so (art::jit::JitCompileTask::Run(art::Thread*)+626)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #19 pc 0059855b  /system/lib/libart.so (art::ThreadPoolWorker::Run()+91)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #20 pc 00597fab  /system/lib/libart.so (art::ThreadPoolWorker::Callback(void*)+139)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #21 pc 00071445  /system/lib/libc.so (__pthread_start(void*)+53)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #22 pc 000205db  /system/lib/libc.so (__start_thread+75)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   native: #23 pc 0001ec16  /system/lib/libc.so (__bionic_clone+70)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534]   (no managed stack frames)
05-14 19:27:27.869 4565-4571/com.example.jni A/zygote: java_vm_ext.cc:534] 
05-14 19:27:29.080 4565-4565/com.example.jni I/Choreographer: Skipped 56 frames!  The application may be doing too much work on its main thread.
05-14 19:27:29.454 4565-4577/com.example.jni I/zygote: Background concurrent copying GC freed 2089(292KB) AllocSpace objects, 0(0B) LOS objects, 38% free, 9MB/15MB, paused 14.102ms total 2.626s
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523] Runtime aborting...
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523] Dumping all threads without appropriate locks held: thread list lock mutator lock
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523] All threads:
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523] DALVIK THREADS (31):
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523] "Jit thread pool worker thread 0" prio=5 tid=2 Runnable
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | group="" sCount=0 dsCount=0 flags=0 obj=0x15600000 self=0x9b615600
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | sysTid=4571 nice=9 cgrp=default sched=0/0 handle=0x9b8c5970
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | state=R schedstat=( 300303782 2898196599 469 ) utm=12 stm=18 core=1 HZ=100
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | stack=0x9b7c7000-0x9b7c9000 stackSize=1022KB
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | held mutexes= "abort lock" "mutator lock"(shared held)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #00 pc 0047ead1  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*)+209)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #01 pc 0057c183  /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+355)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #02 pc 00577683  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+83)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #03 pc 005974fe  /system/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+1118)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #04 pc 0058e9e6  /system/lib/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+534)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #05 pc 0058e232  /system/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool)+882)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #06 pc 0055f1a1  /system/lib/libart.so (art::AbortState::DumpAllThreads(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, art::Thread*) const+289)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #07 pc 0055edc0  /system/lib/libart.so (art::AbortState::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&) const+176)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #08 pc 0054d356  /system/lib/libart.so (art::Runtime::Abort(char const*)+198)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #09 pc 0011fb23  /system/lib/libart.so (_ZNSt3__110__function6__funcIPFvPKcENS_9allocatorIS5_EES4_EclEOS3_+35)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #10 pc 0065f26b  /system/lib/libart.so (android::base::LogMessage::~LogMessage()+1051)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #11 pc 003954ff  /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1951)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #12 pc 003956b1  /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, char*)+113)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #13 pc 0014f207  /system/lib/libart.so (art::ScopedCheck::AbortF(char const*, ...)+71)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #14 pc 0014e42d  /system/lib/libart.so (art::ScopedCheck::CheckArray(art::ScopedObjectAccess&, _jarray*)+285)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #15 pc 0014dc4a  /system/lib/libart.so (art::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::JniValueType)+170)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #16 pc 0014cf85  /system/lib/libart.so (art::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::JniValueType*)+853)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #17 pc 00158f9e  /system/lib/libart.so (art::CheckJNI::GetPrimitiveArrayElements(char const*, art::Primitive::Type, _JNIEnv*, _jarray*, unsigned char*)+942)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #18 pc 0014522f  /system/lib/libart.so (art::CheckJNI::GetIntArrayElements(_JNIEnv*, _jintArray*, unsigned char*)+47)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #19 pc 0001a98a  /system/lib/libopenjdkjvmti.so (openjdkjvmti::JvmtiAllocationListener::ObjectAllocated(art::Thread*, art::ObjPtr<art::mirror::Object>*, unsigned int)+538)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #20 pc 0012ed69  /system/lib/libart-compiler.so (_ZN3art2gc4Heap24AllocObjectWithAllocatorILb1ELb1ENS_6mirror16SetLengthVisitorEEEPNS3_6ObjectEPNS_6ThreadENS_6ObjPtrINS3_5ClassEEEjNS0_13AllocatorTypeERKT1_+1961)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #21 pc 001895f1  /system/lib/libart-compiler.so (art::mirror::ObjectArray<art::mirror::Object>::Alloc(art::Thread*, art::ObjPtr<art::mirror::Class>, int, art::gc::AllocatorType)+129)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #22 pc 00186583  /system/lib/libart-compiler.so (art::OptimizingCompiler::JitCompile(art::Thread*, art::jit::JitCodeCache*, art::ArtMethod*, bool, art::jit::JitLogger*)+2147)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #23 pc 000e1d83  /system/lib/libart-compiler.so (art::jit::JitCompiler::CompileMethod(art::Thread*, art::ArtMethod*, bool)+163)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #24 pc 000e1cd7  /system/lib/libart-compiler.so (jit_compile_method+55)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #25 pc 003b8b3f  /system/lib/libart.so (art::jit::Jit::CompileMethod(art::ArtMethod*, art::Thread*, bool)+303)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #26 pc 003bb982  /system/lib/libart.so (art::jit::JitCompileTask::Run(art::Thread*)+626)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #27 pc 0059855b  /system/lib/libart.so (art::ThreadPoolWorker::Run()+91)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #28 pc 00597fab  /system/lib/libart.so (art::ThreadPoolWorker::Callback(void*)+139)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #29 pc 00071445  /system/lib/libc.so (__pthread_start(void*)+53)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #30 pc 000205db  /system/lib/libc.so (__start_thread+75)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #31 pc 0001ec16  /system/lib/libc.so (__bionic_clone+70)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   (no managed stack frames)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523] 
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523] "Signal Catcher" prio=5 tid=3 WaitingInMainSignalCatcherLoop
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | group="" sCount=1 dsCount=0 flags=1 obj=0x15600088 self=0xa3459c00
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | sysTid=4572 nice=0 cgrp=default sched=0/0 handle=0x9b7c4970
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | state=S schedstat=( 1130252 9782646 31 ) utm=0 stm=0 core=0 HZ=100
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | stack=0x9b6ca000-0x9b6cc000 stackSize=1006KB
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | held mutexes=
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   kernel: do_sigtimedwait+0xd7/0x19f
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   kernel: SyS_rt_sigtimedwait+0x6e/0x9c
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   kernel: syscall_after_call+0x0/0x4
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #00 pc 00000ac4  [vdso] (__kernel_vsyscall+16)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #01 pc 00074391  /system/lib/libc.so (__rt_sigtimedwait+33)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #02 pc 0002abf7  /system/lib/libc.so (sigwait+119)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #03 pc 00568549  /system/lib/libart.so (art::SignalSet::Wait()+57)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #04 pc 00567fda  /system/lib/libart.so (art::SignalCatcher::WaitForSignal(art::Thread*, art::SignalSet&)+250)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #05 pc 005663bf  /system/lib/libart.so (art::SignalCatcher::Run(void*)+319)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #06 pc 00071445  /system/lib/libc.so (__pthread_start(void*)+53)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #07 pc 000205db  /system/lib/libc.so (__start_thread+75)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #08 pc 0001ec16  /system/lib/libc.so (__bionic_clone+70)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   (no managed stack frames)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523] 
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523] "JDWP" prio=5 tid=4 WaitingInMainDebuggerLoop
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | group="" sCount=1 dsCount=0 flags=1 obj=0x15600110 self=0x9b613200
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | sysTid=4573 nice=0 cgrp=default sched=0/0 handle=0x88e90970
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | state=S schedstat=( 18920369 50020694 64 ) utm=1 stm=0 core=0 HZ=100
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | stack=0x88d96000-0x88d98000 stackSize=1006KB
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   | held mutexes=
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   kernel: poll_schedule_timeout+0x2e/0x4b
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   kernel: do_select+0x584/0x5c3
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   kernel: core_sys_select+0x191/0x2b0
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   kernel: SyS_pselect6+0xec/0x16e
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   kernel: syscall_after_call+0x0/0x4
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #00 pc 00000ac4  [vdso] (__kernel_vsyscall+16)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #01 pc 0007419b  /system/lib/libc.so (__pselect6+43)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #02 pc 000287c8  /system/lib/libc.so (select+136)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #03 pc 0064ad44  /system/lib/libart.so (art::JDWP::JdwpAdbState::ProcessIncoming()+372)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #04 pc 003ad55c  /system/lib/libart.so (art::JDWP::JdwpState::Run()+1948)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #05 pc 003ac553  /system/lib/libart.so (art::JDWP::StartJdwpThread(void*)+51)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #06 pc 00071445  /system/lib/libc.so (__pthread_start(void*)+53)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #07 pc 000205db  /system/lib/libc.so (__start_thread+75)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   native: #08 pc 0001ec16  /system/lib/libc.so (__bionic_clone+70)
05-14 19:27:29.605 4565-4571/com.example.jni A/zygote: runtime.cc:523]   (no managed stack frames)
...

1 个答案:

答案 0 :(得分:0)

回答最初的问题:

  • 是的,问题是由于我的C ++代码
  • 我没有找到从logcat
  • 中读取的方法

我只是通过在Java中快速编写函数来确认这是由于我的代码,并且它从未与这个函数崩溃。

正如你可能有这样的问题:https://developer.android.com/ndk/guides/ndk-stack,logcat和ndk-stack理论上应该提供有关崩溃发生位置的信息。不幸的是我无法正确使用ndk-stack。它什么都不输出。也许是因为我用错误的符号文件喂它。我完全不知道。它只是输出:

export default rootReducer = combineReducers({ auth, viewControl, showIntro: showIntro => showIntro });

作为旁注,如果像我一样环境变量没有正确设置可能有用,ndk-stack工具如下:     / Users / homefolder / Library / Android / sdk / ndk-bundle / ndk-stack

符号文件在(我不知道使用哪一个,全部尝试过):

********** Crash dump: **********

因为我无法使用ndk-stack,所以我用Java重写了这个函数,所有的崩溃都消失了。 有关信息,我试图在C ++代码和JNI调用周围尝试/ catch,但这并没有阻止崩溃发生。