art::OatHeader::IsDebuggable() const 崩溃,Android 11,Google Ads SDK 19.7.0
Posted
技术标签:
【中文标题】art::OatHeader::IsDebuggable() const 崩溃,Android 11,Google Ads SDK 19.7.0【英文标题】:art::OatHeader::IsDebuggable() const Crash, Android 11, Google Ads SDK 19.7.0 【发布时间】:2021-06-12 17:54:58 【问题描述】:我在许多 android 11 设备上都遇到了这种崩溃。目标 SKD 为 29,构建工具为 29.0.2。
其他人有这个问题吗?除了等待新的 sdk 发布,我们还能做什么。由于这次崩溃,我失去了几千名用户。
Facebook 也有类似的问题,但在 6.2.1 中修复了这个问题,请参阅这个帖子:Facebook Audience 6.2.0 /apex/com.android.art/lib64/libart.so (art::OatHeader::IsDebuggable() const+124) on Android 11
#00 pc 00000000004be3ec /apex/com.android.art/lib64/libart.so (art::OatHeader::IsDebuggable() const+64)
#00 pc 00000000004bea98 /apex/com.android.art/lib64/libart.so (art::OatFileBase::ShouldUnquickenVDex() const+56)
#00 pc 00000000004bec38 /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 00000000004c30ec /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> >*)+472)
#00 pc 00000000004c9bc8 /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::GetFile()+696)
#00 pc 00000000004c8dc4 /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::Status()+76)
#00 pc 00000000004c92b0 /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::ReleaseFileForUse()+56)
#00 pc 00000000004ce798 /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 0000000000485ae0 /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 000000000001f744 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexFile.openDexFile+244)
#00 pc 0000000000021560 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexPathList.makeDexElements+784)
#00 pc 0000000000020d38 /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 0000000000058630 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (dalvik.system.DexClassLoader.<init>+80)
#00 pc 0000000000134564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#00 pc 0000000000198e94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204)
#00 pc 000000000030c218 /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376)
#00 pc 0000000000307330 /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*)+884)
#00 pc 000000000063d560 /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+592)
#00 pc 000000000012e914 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20)
#00 pc 00000000001764a6 /data/user_de/0/com.google.android.gms/app_chimera/m/00000018/dl-AdsFdrDynamite.integ_204890103100000.apk (qb.c+118)
#00 pc 000000000063d79c /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+1164)
#00 pc 000000000012e914 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20)
#00 pc 00000000001765f8 /data/user_de/0/com.google.android.gms/app_chimera/m/00000018/dl-AdsFdrDynamite.integ_204890103100000.apk (qb.a+8)
#00 pc 000000000063b274 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1440)
#00 pc 000000000012e814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20)
#00 pc 0000000000094d8a /data/user_de/0/com.google.android.gms/app_chimera/m/00000018/dl-AdsFdrDynamite.integ_204890103100000.apk (ec.c+26)
#00 pc 000000000063b274 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1440)
#00 pc 000000000012e814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20)
#00 pc 00000000000949fe /data/user_de/0/com.google.android.gms/app_chimera/m/00000018/dl-AdsFdrDynamite.integ_204890103100000.apk (ec.a+70)
#00 pc 00000000002fed0c /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.5884005180817902658)+268)
#00 pc 00000000003069d4 /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200)
#00 pc 0000000000307314 /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*)+856)
#00 pc 000000000063ddc0 /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+548)
#00 pc 000000000012e994 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#00 pc 00000000000be4fe /data/user_de/0/com.google.android.gms/app_chimera/m/00000018/dl-AdsFdrDynamite.integ_204890103100000.apk (com.google.android.gms.ads.internal.i.run+162)
#00 pc 00000000002fed0c /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.5884005180817902658)+268)
#00 pc 00000000006299e8 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+796)
#00 pc 000000000013dff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)
#00 pc 00000000002a2ae8 /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+984)
#00 pc 000000000029fce0 /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+64)
#00 pc 000000000015cdf8 /apex/com.android.art/javalib/arm64/boot.oat (java.lang.Thread.run+72)
#00 pc 0000000000134564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#00 pc 0000000000198e94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204)
#00 pc 00000000005320fc /apex/com.android.art/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
#00 pc 00000000005332fc /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+440)
#00 pc 000000000058081c /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1272)
#00 pc 00000000000b6374 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#00 pc 0000000000050fa4 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
【问题讨论】:
我更新到 19.8.0 但崩溃仍然存在 这是关于此问题的 Google 网上论坛主题:groups.google.com/g/google-admob-ads-sdk/c/tyXU1DW0wNc?pli=1 清理播放服务数据和缓存似乎可以解决受影响用户的问题 您还发现这个问题吗?我经常查看 AdMob 发行说明,但没有看到任何相关更改。我目前在 play-services-ads:20.0.0 上,但我的大部分用户仍然存在崩溃。 嗨橙子,我也有这个问题。到目前为止,我知道我们必须等待设备制造商分发补丁。看起来三星已经分发了补丁。至少我没有三星 android 11 崩溃了。 【参考方案1】:除了删除适用于 android 11 设备的谷歌广告或建议我们的用户清除播放服务缓存和数据之外,我们目前无能为力。
来自谷歌的回答:
这是 Android 平台级别的错误。详情:
错误 - https://issuetracker.google.com/issues/182081085#comment5 来源 修补 - https://android-review.googlesource.com/c/platform/art/+/1642063/
不幸的是,如上面的错误链接中所述,这无济于事 正在升级到 Android 11 的设备,并且清除缓存是 解决方法。
【讨论】:
感谢您的链接。这真的很烦人。为什么不能解决这个问题?由于很多用户不知道如何清除缓存,我们通常会为这些用户禁用 android 11 上的广告。收入的巨大损失。这真的没有解决方法吗??以上是关于art::OatHeader::IsDebuggable() const 崩溃,Android 11,Google Ads SDK 19.7.0的主要内容,如果未能解决你的问题,请参考以下文章