Open KennethRichards opened 1 year ago
Hi @KennethRichards Since this only happens on some devices it could be that the so-file for some reason is stripped by Google play when installing the app. Do you have more insight in:
Hi @rorbech This is only happening on the Nexus 5X (Android 8.1.0) and Galaxy Tab A (Android 7.1.2). <1% of users are affected with only 1 of these users being rooted on a Galaxy Tab A. No other patterns for now, but I will continue to monitor
Hi @KennethRichards. Thanks for the feedback. Are you by any chance distributing other native libraries than ours in your app? We have seen that if some other library is not available for the exact architecture then it can end up only looking for 32-bit libraries on a 64-bit device, and that library could have been stripped as part of the repackaging in playstore.
Hi @rorbech, I checked the Github repos from the other dependencies in our app but did not find any indication of native libraries. To be honest I'm not quite sure how else to check/verify this.
When inspecting the APK though, I can see that librealmc.so
is the only file located in the following directories:
/lib/x86_64
/lib/x86
/lib/arm64-v8a
/lib/armeabi-v7a
We have seen a similar problem with Realm Java, and the root cause is still unclear. It is pretty rare, but our best guess is that either APK's are being side-loaded in the wrong way or the Play Store doesn't send down the correct files.
Currently, in Realm Kotlin, we are just loading the native lib in a naive way, which should work, but has a few known edge cases, #1215 will introduce a slightly better way, but it isn't a 100% guarantee it will fix this issue.
Hi all, we got a few reports of this issue. Here is some data if it helps.
Caused by androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: dlopen failed: library "librealmc.so" not found
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2388)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2358)
at android.app.ActivityThread.installProvider(ActivityThread.java:7262)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6803)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6720)
at android.app.ActivityThread.access$1300(ActivityThread.java:239)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1915)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7680)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by java.lang.UnsatisfiedLinkError: dlopen failed: library "librealmc.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:1093)
at java.lang.Runtime.loadLibrary0(Runtime.java:1013)
at java.lang.System.loadLibrary(System.java:1664)
at io.realm.kotlin.internal.interop.realmc.<clinit>(realmc.java:18)
at io.realm.kotlin.internal.interop.realmc.realm_config_new(realmc.java:262)
at io.realm.kotlin.internal.interop.RealmInterop.realm_config_new(RealmInterop.kt:120)
at io.realm.kotlin.internal.ConfigurationImpl.createNativeConfiguration(ConfigurationImpl.kt:2)
at io.realm.kotlin.internal.ConfigurationImpl.openRealm$suspendImpl(ConfigurationImpl.kt:4)
at io.realm.kotlin.internal.ConfigurationImpl.openRealm(ConfigurationImpl.kt)
Hi all, got a new stack trace related to the above. This occurred on a rooted device.
Fatal Exception: java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librealmc.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
at android.app.ActivityThread.installProvider(ActivityThread.java:7862)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7374)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7081)
at android.app.ActivityThread.access$1700(ActivityThread.java:277)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2161)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8298)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1073)
Hi all, we also had the same issue,
Exception
MissingLibraryException: Could not find 'librealmc.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:175)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:70)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:57)
...
(21 additional frame(s) were not displayed)
StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librealmc.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2516)
...
(13 additional frame(s) were not displayed)
RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librealmc.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
at android.app.ActivityThread.installProvider(ActivityThread.java:8231)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7728)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7482)
at android.app.ActivityThread.access$1600(ActivityThread.java:310)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2281)
...
(7 additional frame(s) were not displayed)
This error happens every time an APK is extracted from the app installed from PlayStore. Realm 1.9.1, Android 13.
at android.app.ActivityThread.installProvider(ActivityThread.java:7728)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7216)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6960)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2218)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:242)
at android.os.Looper.loop(Looper.java:359)
at android.app.ActivityThread.main(ActivityThread.java:8133)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942)
Caused by: androidx.startup.StartupException: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librealmc.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2502)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2472)
at android.app.ActivityThread.installProvider(ActivityThread.java:7723)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7216)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6960)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2218)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:242)
at android.os.Looper.loop(Looper.java:359)
at android.app.ActivityThread.main(ActivityThread.java:8133)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942)
Caused by: com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librealmc.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:175)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:70)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:57)
at io.realm.kotlin.internal.AndroidUtilsKt.loadAndroidNativeLibs(AndroidUtils.kt:14)
at io.realm.kotlin.internal.RealmInitializer.create(RealmInitializer.kt:42)
at io.realm.kotlin.internal.RealmInitializer.create(RealmInitializer.kt:30)
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2502)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2472)
at android.app.ActivityThread.installProvider(ActivityThread.java:7723)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7216)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6960)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2218)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:242)
at android.os.Looper.loop(Looper.java:359)
at android.app.ActivityThread.main(ActivityThread.java:8133)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:942) ```
We have around 350 crashes with the same exception, starting with the realm-kotlin integration.
The device range and system are mixed. Not only rooted devices. 35% are Google devices. 45% are Android 8.
Caused by com.getkeepsafe.relinker.MissingLibraryException: Could not find 'librealmc.so'. Looked for: [arm64-v8a, armeabi-v7a, armeabi], but only found: [].
at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:175)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:70)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:57)
at io.realm.kotlin.internal.AndroidUtilsKt.loadAndroidNativeLibs(AndroidUtils.kt:14)
The problem with this error is that we think this is related to the Playstore distribution and App Bundles and sometimes the app store sends the wrong thing to devices. Unfortunately, this is basically impossible to test and we have never been able to reproduce it.
At the same time, we have seen people manually distributing the wrong app bundles to devices, but this normally happens with custom app distribution frameworks or rooted devices where you try to sideload an APK.
That said, we just pushed a change that is available in 1.10-SNAPSHOT
which disables Relinker above API 22. The reason we use Relinker is that Android has known bugs loading native code on API 22 and below, but there is no need to use it above.
So just to be 100% sure this library is not involved in these bugs, it has now been disabled.
Apart from that, the solution we have seen working is to disable App Bundles, unfortunately, the tradeoff there is an increase in APK size.
Are there any updates on this issue or the proposed fix of disabling app bundles? We are also experience this error in one of our production apps.
Devices are for example OnePlus 9 5G with Android 14; Realm Kotlin version currently 1.12.0. Maybe there are fixes in an already released version? The issue is still set to be open therefore I assume it's not fixed yet?
We are also facing this issue. So far we've seen crashes on Galaxy A14 5G Android 13 and Nexus 5x Android 8.
Same problem on OnePlus 9 Android14, on an Kotlin Multiplatform project. "io.realm.kotlin", name = "library-base" Version = 1.14.0
Caused by androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: dlopen failed: library "librealmc.so" not found
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
Caused by java.lang.UnsatisfiedLinkError: dlopen failed: library "librealmc.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
at java.lang.System.loadLibrary(System.java:1661)
at io.realm.kotlin.internal.AndroidUtilsKt.loadAndroidNativeLibs(AndroidUtils.kt:20)
at io.realm.kotlin.internal.RealmInitializer.create(RealmInitializer.kt:42)
at io.realm.kotlin.internal.RealmInitializer.create(RealmInitializer.kt:30)
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
Inside my APK
./lib/armeabi-v7a/librealmc.so
./lib/x86/librealmc.so
./lib/arm64-v8a/librealmc.so
./lib/x86_64/librealmc.so
New devices with this error Huawei ALN-AL00, Android 12
Fatal Exception: java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: dlopen failed: library "librealmc.so" not found at android.app.ActivityThread.installProvider(ActivityThread.java:9416) at android.app.ActivityThread.installContentProviders(ActivityThread.java:8919) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:8591) at android.app.ActivityThread.access$2800(ActivityThread.java:313) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2902) at android.os.Handler.dispatchMessage(Handler.java:117)
and
Google, Pixel 6 Pro, Android 12
Fatal Exception: java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: dlopen failed: library "librealmc.so" not found at android.app.ActivityThread.installProvider(ActivityThread.java:7464) at android.app.ActivityThread.installContentProviders(ActivityThread.java:6976) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6747) at android.app.ActivityThread.access$1500(ActivityThread.java:256) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2091)
I created an Google Issue See loginCompleted.
Same problem on OnePlus 6 Android11, Transsion Note 12 Android13, and Oppo Realme Narzo 30 Android12 on an Android project. "io.realm.kotlin", name = "library-base" Version = 1.13.0
Crash occured for 32 times.
Fatal Exception: java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: dlopen failed: library "librealmc.so" not found
at android.app.ActivityThread.installProvider(ActivityThread.java:7719)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7220)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6973)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2219)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:204)
at android.os.Looper.loop(Looper.java:291)
at android.app.ActivityThread.main(ActivityThread.java:8129)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:601)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1019)
Caused by androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: dlopen failed: library "librealmc.so" not found
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2473)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2443)
at android.app.ActivityThread.installProvider(ActivityThread.java:7714)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7220)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6973)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2219)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:204)
at android.os.Looper.loop(Looper.java:291)
at android.app.ActivityThread.main(ActivityThread.java:8129)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:601)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1019)
Caused by java.lang.UnsatisfiedLinkError: dlopen failed: library "librealmc.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
at java.lang.System.loadLibrary(System.java:1661)
at io.realm.kotlin.internal.AndroidUtilsKt.loadAndroidNativeLibs(AndroidUtils.kt:20)
at io.realm.kotlin.internal.RealmInitializer.create(RealmInitializer.kt:42)
at io.realm.kotlin.internal.RealmInitializer.create(RealmInitializer.kt:30)
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2473)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2443)
at android.app.ActivityThread.installProvider(ActivityThread.java:7714)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7220)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6973)
at android.app.ActivityThread.-$$Nest$mhandleBindApplication()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2219)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:204)
at android.os.Looper.loop(Looper.java:291)
at android.app.ActivityThread.main(ActivityThread.java:8129)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:601)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1019)
Same here on Nexus 5X (Android 8.1.0) and Pixel 6 Pro (Android 12):
Fatal Exception: java.lang.RuntimeException
Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.mitteloupe.bestchoicemaker-7Fa3BCGrKB0oW6s7-m_jcg==/base.apk"],nativeLibraryDirectories=[/data/app/com.mitteloupe.bestchoicemaker-7Fa3BCGrKB0oW6s7-m_jcg==/lib/x86, /system/lib, /vendor/lib]]] couldn't find "librealmc.so"
Caused by androidx.startup.StartupException
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.mitteloupe.bestchoicemaker-7Fa3BCGrKB0oW6s7-m_jcg==/base.apk"],nativeLibraryDirectories=[/data/app/com.mitteloupe.bestchoicemaker-7Fa3BCGrKB0oW6s7-m_jcg==/lib/x86, /system/lib, /vendor/lib]]] couldn't find "librealmc.so"
Caused by java.lang.UnsatisfiedLinkError
dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.mitteloupe.bestchoicemaker-7Fa3BCGrKB0oW6s7-m_jcg==/base.apk"],nativeLibraryDirectories=[/data/app/com.mitteloupe.bestchoicemaker-7Fa3BCGrKB0oW6s7-m_jcg==/lib/x86, /system/lib, /vendor/lib]]] couldn't find "librealmc.so"
The problem with this error is that we think this is related to the Playstore distribution and App Bundles and sometimes the app store sends the wrong thing to devices. Unfortunately, this is basically impossible to test and we have never been able to reproduce it.
At the same time, we have seen people manually distributing the wrong app bundles to devices, but this normally happens with custom app distribution frameworks or rooted devices where you try to sideload an APK.
That said, we just pushed a change that is available in
1.10-SNAPSHOT
which disables Relinker above API 22. The reason we use Relinker is that Android has known bugs loading native code on API 22 and below, but there is no need to use it above.So just to be 100% sure this library is not involved in these bugs, it has now been disabled.
Apart from that, the solution we have seen working is to disable App Bundles, unfortunately, the tradeoff there is an increase in APK size.
Based on this reply, if it's really because of the Play Store Distribution: Maybe the cause is based on users downloading the app's from third party stores and not from the official Play Store and therefore this file is missing on their installations?
Has anyone subscribed to this topic been able to reproduce this issue? I assume that everyone here is just posting the stacktraces from the crash monitoring of their choice
The problem with this error is that we think this is related to the Playstore distribution and App Bundles and sometimes the app store sends the wrong thing to devices. Unfortunately, this is basically impossible to test and we have never been able to reproduce it. At the same time, we have seen people manually distributing the wrong app bundles to devices, but this normally happens with custom app distribution frameworks or rooted devices where you try to sideload an APK. That said, we just pushed a change that is available in
1.10-SNAPSHOT
which disables Relinker above API 22. The reason we use Relinker is that Android has known bugs loading native code on API 22 and below, but there is no need to use it above. So just to be 100% sure this library is not involved in these bugs, it has now been disabled. Apart from that, the solution we have seen working is to disable App Bundles, unfortunately, the tradeoff there is an increase in APK size.Based on this reply, if it's really because of the Play Store Distribution: Maybe the cause is based on users downloading the app's from third party stores and not from the official Play Store and therefore this file is missing on their installations?
Has anyone subscribed to this topic been able to reproduce this issue? I assume that everyone here is just posting the stacktraces from the crash monitoring of their choice
I've not been able to reproduce it personally but would like to suggest we rule out the third party stores theory: I get the crashes reported within hours of posting a new release, which I only publish to the Play Store. Unless some third party store picks it up immediately, these are Play Store installations.
Also, the ratio of these crashes for me is about 0.1% of my active users. That's not too bad, but it's still frustrating.
I also noticed that Google closed the ticket that was mentioned earlier.
I have precisely the same crash, and also Nexus 5X Android 8.1.0. Also cannot re-produce on emulator. Realm version: io.realm.kotlin:library-base:1.16.0
SDK: realm-kotlin
Version: 'io.realm.kotlin:library-sync:1.5.0', 'io.realm.kotlin:gradle-plugin:1.5.0'
Observations
How frequent do the crash occur? Subset of users
Does it happen in production or during dev/test? Production
Can the crash be reproduced by you? No. I was unable to reproduce in the Android Emulator on Nexus 7 - Android 8.1
Can you provide instructions for how we can reproduce it? Seems to be occuring on app launch when calling
App.create()
From Firebase Crashlytics:
Nexus 5X - Android 8.1.0
Galaxy Tab A - Android 7.1.2
In the APK, librealmc.so exists in /lib/x86_64 /lib/x86 /lib/arm64-v8a /lib/armeabi-v7a