间歇性 Android 应用程序崩溃 java.lang.UnsatisfiedLinkError: dlopen failed

Posted

技术标签:

【中文标题】间歇性 Android 应用程序崩溃 java.lang.UnsatisfiedLinkError: dlopen failed【英文标题】:Intermittent Android app crash java.lang.UnsatisfiedLinkError: dlopen failed 【发布时间】:2021-12-02 03:36:35 【问题描述】:

我们的应用目前在 TC56 和 TC57 设备上运行,我们观察到少数设备出现间歇性崩溃。

[Events]
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.XXX.XXX-9biWE6eu2GZJuAqHQGqPpw==/lib/arm/libcrashmanager-ndk.so" has bad ELF magic
at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
at java.lang.System.loadLibrary(System.java:1657)
at com.XXX.device.crashmanager.ndk.NDKCrashDetector.<init>(NDKCrashDetector.java:3)
at com.XXX.device.crashmanager.CrashDetectionHelper.enableNDKCrashDetection(CrashDetectionHelper.java:1)
at com.XXX.XXX.android.log.CustomCrashReporterImpl.initialise(CustomCrashReporterImpl.java:6)
at com.XXX.XXX.android.XXX.onCreate(XXX.java:5)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1120)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5765)
at android.app.ActivityThread.-wrap1(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1669)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6528)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

我们遇到了这与我们的崩溃非常相似。我已经验证我们正在使用 osVersion: 8.1.0 比答案中建议的要大。

其中一个主要原因是这是间歇性故障

【问题讨论】:

【参考方案1】:

您正在使用以某种方式损坏的库 libcrashmanager-ndk。 “糟糕的 ELF 魔法”意味着文件的前 4 个字节(我认为 4 个字节,可能大小不合适)不是预期识别 ELF 文件的魔法组合。 ELF 文件是 linux 可执行文件。解决这个问题的唯一方法是获得一个好的库版本(或根本不使用它)。

【讨论】:

库的问题会导致应用每次都崩溃?...还是会导致间歇性崩溃?... 每次尝试加载库时。如果它不需要加载库,它就不会崩溃。如果您在 ABI 不兼容的设备上运行,这也可能是一个问题。 Play 商店不应该让您被下载,但如果您正在旁加载,则可能会发生这种情况。

以上是关于间歇性 Android 应用程序崩溃 java.lang.UnsatisfiedLinkError: dlopen failed的主要内容,如果未能解决你的问题,请参考以下文章

xcode ios间歇性崩溃

CALayercornerRadius 导致应用程序间歇性崩溃

react-native 中的音频间歇性崩溃

P/Invoke 和内存相关的间歇性崩溃

崩溃:java.lang.NoClassDefFoundError:android.support.v7.appcompat.R$layout

Visual Studio 2015 间歇性崩溃