从目标SDK 29的Android应用中,将Facebook Audience从5.11.0更新到6.2.0后,我发现在一小部分Android 11设备上出现了相当数量的崩溃报告。根据一个经历此类崩溃并已多次重新安装应用程序进行测试的用户的说法,崩溃发生在启动几秒钟后,第一次能够看到加载屏幕,然后立即在第一次之后发生。
#00 pc 00000000004dcd84 /apex/com.android.art/lib64/libart.so (art::OatHeader::IsDebuggable() const+124)
#00 pc 00000000004dd3f4 /apex/com.android.art/lib64/libart.so (art::OatFileBase::ShouldUnquickenVDex() const+56)
#00 pc 00000000004dd594 /apex/com.android.art/lib64/libart.so (art::OatFileBase::LoadVdex(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)+80)
#00 pc 00000000004e1594 /apex/com.android.art/lib64/libart.so (art::OatFile::Open(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool, art::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const>, art::MemMap*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)+468)
#00 pc 00000000004e7d78 /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::GetFile()+696)
#00 pc 00000000004e7038 /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::Status()+76)
#00 pc 00000000004e7458 /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::ReleaseFileForUse()+56)
#00 pc 00000000004ec944 /apex/com.android.art/lib64/libart.so (art::OatFileManager::OpenDexFilesFromOat(char const*, _jobject*, _jobjectArray*, art::OatFile const**, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*)+292)
#00 pc 00000000004a0718 /apex/com.android.art/lib64/libart.so (art::DexFile_openDexFileNative(_JNIEnv*, _jclass*, _jstring*, _jstring*, int, _jobject*, _jobjectArray*)+144)
#00 pc 0000000000010a88 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (art_jni_trampoline+264)
#00 pc 000000000001f584 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexFile.openDexFile+244)
#00 pc 00000000000215d4 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexPathList.makeDexElements+1348)
#00 pc 0000000000020b78 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexPathList.<init>+664)
#00 pc 000000000001d934 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.BaseDexClassLoader.<init>+228)
#00 pc 0000000000057f90 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexClassLoader.<init>+80)
#00 pc 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#00 pc 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#00 pc 000000000031830c /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376)
#00 pc 000000000030e638 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996)
#00 pc 000000000067d794 /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+576)
#00 pc 000000000012d914 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20)
#00 pc 00000000001cdc00 /data/app/~~USEx1p9tx0-5YVxYZoz1fQ==/com.mycompany.mygame-OdPieLgz_xrP3A7H8t3zyw==/oat/arm64/base.vdex (com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory.makeLegacyAdsSdkClassLoader+160)
#00 pc 000000000067e314 /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
#00 pc 000000000012d994 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#00 pc 00000000001cdd48 /data/app/~~USEx1p9tx0-5YVxYZoz1fQ==/com.mycompany.mygame-OdPieLgz_xrP3A7H8t3zyw==/oat/arm64/base.vdex (com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory.makeAdsSdkClassLoader+8)
#00 pc 000000000067e314 /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
#00 pc 000000000012d994 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#00 pc 00000000001cd96e /data/app/~~USEx1p9tx0-5YVxYZoz1fQ==/com.mycompany.mygame-OdPieLgz_xrP3A7H8t3zyw==/oat/arm64/base.vdex (com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory.doMakeLoader+70)
#00 pc 000000000067e314 /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
#00 pc 000000000012d994 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#00 pc 00000000001cd90c /data/app/~~USEx1p9tx0-5YVxYZoz1fQ==/com.mycompany.mygame-OdPieLgz_xrP3A7H8t3zyw==/oat/arm64/base.vdex (com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory.access$000)
#00 pc 000000000067e314 /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
#00 pc 000000000012d994 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#00 pc 00000000001cd6fa /data/app/~~USEx1p9tx0-5YVxYZoz1fQ==/com.mycompany.mygame-OdPieLgz_xrP3A7H8t3zyw==/oat/arm64/base.vdex (com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory$a.run+34)
#00 pc 0000000000305c34 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268)
#00 pc 0000000000669e20 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780)
#00 pc 000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)
#00 pc 000000000015ab08 /apex/com.android.art/javalib/arm64/boot.oat (java.lang.Thread.run+72)
#00 pc 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#00 pc 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#00 pc 0000000000553890 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+460)
#00 pc 00000000005a2c2c /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1308)
#00 pc 00000000000af888 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#00 pc 000000000004fe08 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
这与 /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) 问题不同 (/apex/com.android.runtime/lib64/bionic/libc.so (abort+160), abort crash in Android 10 devices),后者在6.2.0版本中仍很少发生。