SoLoader is a native code loader for Android.

Related tags

Utility SoLoader
Overview

SoLoader

SoLoader is a native code loader for Android. It takes care of unpacking your native libraries and recursively loads dependencies on platforms that don't support that out of the box.

Requirements

SoLoader can be included in any Android application.

Including SoLoader in your apps

You can use prebuilt aars or fetch SoLoader from Maven repository by adding the following to your build.gradle file:

implementation 'com.facebook.soloader:soloader:0.10.3+'

Building from source

To build SoLoader from source you'll need Buck. Once you have Buck installed execute following commands from the project root directory:

  buck fetch //...
  buck build :soloader

The build command generates buck-out/gen/soloader.aar file.

Join our community

Please use our issues page to let us know of any problems. See the CONTRIBUTING file for how to help out.

License

SoLoader is Apache-2.0-licensed.

Comments
  • android.system.ErrnoException on Android 10 and 11

    android.system.ErrnoException on Android 10 and 11

    I'm getting crash reports for an app using SoLoader v0.10.1. The reports are coming from devices running Android 10 and 11. The app is published as an AAB (Android App Bundle), which may or may not be related to the problem. I'm wondering if these exceptions are happening when users try to install the app on an incompatible architecture as described in this comment. So this might not be a bug, but I don't know for sure. All the reports are from new high-end devices like the Galaxy S21, which might indicate that the users are technically savvy enough to sideload APKs.

    java.lang.RuntimeException: 
      at android.app.ActivityThread.handleMakeApplication (ActivityThread.java:7469)
      at android.app.ActivityThread.handleBindApplication (ActivityThread.java:7405)
      at android.app.ActivityThread.access$1500 (ActivityThread.java:301)
      at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2130)
      at android.os.Handler.dispatchMessage (Handler.java:106)
      at android.os.Looper.loop (Looper.java:246)
      at android.app.ActivityThread.main (ActivityThread.java:8456)
      at java.lang.reflect.Method.invoke (Method.java)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:596)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
    Caused by: java.lang.RuntimeException: 
      at com.facebook.soloader.SoLoader.init (SoLoader.java:12)
      at com.mypackage.App.setupMapbox (App.java:12)
      at com.mypackage.App.onCreate (App.java:15)
      at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1192)
      at android.app.ActivityThread.handleMakeApplication (ActivityThread.java:7464)
      at android.app.ActivityThread.handleBindApplication (ActivityThread.java:7405)
      at android.app.ActivityThread.access$1500 (ActivityThread.java:301)
      at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2130)
      at android.os.Handler.dispatchMessage (Handler.java:106)
      at android.os.Looper.loop (Looper.java:246)
      at android.app.ActivityThread.main (ActivityThread.java:8456)
      at java.lang.reflect.Method.invoke (Method.java)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:596)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
    Caused by: java.io.FileNotFoundException: 
      at libcore.io.IoBridge.open (IoBridge.java:492)
      at java.io.FileOutputStream.<init> (FileOutputStream.java:236)
      at java.io.FileOutputStream.<init> (FileOutputStream.java:186)
      at com.facebook.soloader.FileLocker.<init> (FileLocker.java:5)
      at com.facebook.soloader.FileLocker.lock (FileLocker.java:3)
      at com.facebook.soloader.UnpackingSoSource.prepare (UnpackingSoSource.java:3)
      at com.facebook.soloader.SoLoader.initSoSources (SoLoader.java:7)
      at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
      at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
      at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
      at com.mypackage.App.setupMapbox (App.java:4)
      at com.mypackage.App.onCreate (App.java:15)
      at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1192)
      at android.app.ActivityThread.handleMakeApplication (ActivityThread.java:7464)
      at android.app.ActivityThread.handleBindApplication (ActivityThread.java:7405)
      at android.app.ActivityThread.access$1500 (ActivityThread.java:301)
      at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2130)
      at android.os.Handler.dispatchMessage (Handler.java:106)
      at android.os.Looper.loop (Looper.java:246)
      at android.app.ActivityThread.main (ActivityThread.java:8456)
      at java.lang.reflect.Method.invoke (Method.java)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:596)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
    Caused by: android.system.ErrnoException: 
      at libcore.io.Linux.open (Linux.java)
      at libcore.io.ForwardingOs.open (ForwardingOs.java:166)
      at libcore.io.BlockGuardOs.open (BlockGuardOs.java:254)
      at libcore.io.ForwardingOs.open (ForwardingOs.java:166)
      at android.app.ActivityThread$AndroidOs.open (ActivityThread.java:8317)
      at libcore.io.IoBridge.open (IoBridge.java:478)
      at java.io.FileOutputStream.<init> (FileOutputStream.java:236)
      at java.io.FileOutputStream.<init> (FileOutputStream.java:186)
      at com.facebook.soloader.FileLocker.<init> (FileLocker.java:5)
      at com.facebook.soloader.FileLocker.lock (FileLocker.java:3)
      at com.facebook.soloader.UnpackingSoSource.prepare (UnpackingSoSource.java:3)
      at com.facebook.soloader.SoLoader.initSoSources (SoLoader.java:7)
      at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
      at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
      at com.facebook.soloader.SoLoader.init (SoLoader.java:4)
      at com.mypackage.App.setupMapbox (App.java:4)
      at com.mypackage.App.onCreate (App.java:15)
      at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1192)
      at android.app.ActivityThread.handleMakeApplication (ActivityThread.java:7464)
      at android.app.ActivityThread.handleBindApplication (ActivityThread.java:7405)
      at android.app.ActivityThread.access$1500 (ActivityThread.java:301)
      at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2130)
      at android.os.Handler.dispatchMessage (Handler.java:106)
      at android.os.Looper.loop (Looper.java:246)
      at android.app.ActivityThread.main (ActivityThread.java:8456)
      at java.lang.reflect.Method.invoke (Method.java)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:596)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
    
    opened by brewin 25
  • App Bundle : couldn't find DSO to load: libfb.so

    App Bundle : couldn't find DSO to load: libfb.so

    We tried to use App Bundle on our native Android app, but it crashes right after we launch the installed apks with the following error:

    2019-08-27 16:48:27.394 E/com.facebook.soloader.NativeLibrary: Failed to load native lib: 
        java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libfb.so
            at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:455)
            at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:371)
            at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:336)
            at com.facebook.soloader.NativeLibrary.loadLibraries(NativeLibrary.java:56)
            at com.facebook.soloader.NativeLibrary.ensureLoaded(NativeLibrary.java:77)
            at com.facebook.android.crypto.keychain.AndroidCryptoLibrary.ensureCryptoLoaded(AndroidCryptoLibrary.java:32)
            at com.facebook.crypto.Crypto.isAvailable(Crypto.java:57)
    

    With apk, it works fine.

    Even the "patched" here, on the merged PR, doesn't work for us https://github.com/facebook/SoLoader/pull/26

    We've made some research and it looks like it is related to this issue, but we couldn't figure out how to fix it. https://github.com/facebook/react-native/issues/23764 Should we have to wait until this issue is fixed? or does anyone know how to fix it?

    Edit: We are using implementation ("com.facebook.conceal:conceal:2.0.2@aar")

    Thank you in advance :)

    opened by JeromeCHA 25
  • Android app bundle crashes of soloader

    Android app bundle crashes of soloader

    All of ours Android apps (React-Native) provided with app bundle (.aab) experiencing with much amount of soloader crashes. Different devices, different OS versions. Can not reproduce it on our testing devices Switching to separate apps is not an options since starting from August 2021 app bundle is required.

    react versions:

    "react": "17.0.1",
    "react-native": "0.64.0", (soloader version 0.9.0 here)
    

    Stacktrace 1:

    java.io.IOException at (Unknown Source)
    com.facebook.soloader.g.<init> (or com.facebook.soloader.FileLocker.<init>)
    java.lang.RuntimeException: Unable to create application chat.roulette.MainApplication: java.lang.RuntimeException: java.io.IOException: Resource deadlock would occur
    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6853)
    	at android.app.ActivityThread.access$1400(ActivityThread.java:246)
    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1955)
    	at android.os.Handler.dispatchMessage(Handler.java:106)
    	at android.os.Looper.loop(Looper.java:236)
    	at android.app.ActivityThread.main(ActivityThread.java:7876)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
    Caused by: java.lang.RuntimeException: java.io.IOException: Resource deadlock would occur
    	at com.facebook.soloader.SoLoader.g(Unknown Source)
    	at chat.roulette.MainApplication.onCreate(Unknown Source)
    	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1193)
    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6848)
    	... 8 more
    Caused by: java.io.IOException: Resource deadlock would occur
    	at sun.nio.ch.FileDispatcherImpl.lock0(Native Method)
    	at sun.nio.ch.FileDispatcherImpl.lock(FileDispatcherImpl.java:115)
    	at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:1139)
    	at java.nio.channels.FileChannel.lock(FileChannel.java:1053)
    	at com.facebook.soloader.g.<init>(Unknown Source)
    	at com.facebook.soloader.g.c(Unknown Source)
    	at com.facebook.soloader.n.b(Unknown Source)
    	at com.facebook.soloader.SoLoader.i(Unknown Source)
    	at com.facebook.soloader.SoLoader.f(Unknown Source)
    	at com.facebook.soloader.SoLoader.e(Unknown Source)
    	at com.facebook.soloader.SoLoader.g(Unknown Source)
    	... 11 more
    

    Stacktrace 2: (little bit different)

    java.lang.RuntimeException: Unable to create application chat.roulette.MainApplication: java.lang.RuntimeException: java.io.IOException: Resource deadlock would occur
    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5506)
    	at android.app.ActivityThread.-wrap2(ActivityThread.java)
    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1595)
    	at android.os.Handler.dispatchMessage(Handler.java:110)
    	at android.os.Looper.loop(Looper.java:203)
    	at android.app.ActivityThread.main(ActivityThread.java:6251)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1073)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
    Caused by: java.lang.RuntimeException: java.io.IOException: Resource deadlock would occur
    	at com.facebook.soloader.SoLoader.g(Unknown Source)
    	at chat.roulette.MainApplication.onCreate(Unknown Source)
    	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5503)
    	... 8 more
    Caused by: java.io.IOException: Resource deadlock would occur
    	at sun.nio.ch.FileDispatcherImpl.lock0(Native Method)
    	at sun.nio.ch.FileDispatcherImpl.lock(FileDispatcherImpl.java:99)
    	at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:1026)
    	at java.nio.channels.FileChannel.lock(FileChannel.java:875)
    	at com.facebook.soloader.g.<init>(Unknown Source)
    	at com.facebook.soloader.g.c(Unknown Source)
    	at com.facebook.soloader.n.b(Unknown Source)
    	at com.facebook.soloader.SoLoader.i(Unknown Source)
    	at com.facebook.soloader.SoLoader.f(Unknown Source)
    	at com.facebook.soloader.SoLoader.e(Unknown Source)
    	... 12 more
    
    opened by Desintegrator 23
  • SoLoader is not compatible with Android app bundles

    SoLoader is not compatible with Android app bundles

    We're seeing crashes in SoLoader in production when loading libreactnativejni.so. We're using React Native 0.59 and SoLoader 0.6.0.

    The crash occurs on a range of devices, on Android OS versions 6 through 10. Google devices seem especially prone, notably the Pixel and Chromebook Plus V2.

    The crashes appear to stem from our switch to using an app bundle rather than an APK on the Google Play store. This looks possibly related to https://github.com/facebook/SoLoader/issues/30, but that issue is marked as resolved in 0.6.0.

    It looks like the app is sometimes attempting to link against old copies of some of the libraries. Here are some examples:

    Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so caused by: dlopen failed: cannot locate symbol "_ZN3fLI7FLAGS_vE" referenced by "/data/app/com.fanduel.android.self-1/lib/arm/libglog.so"...

    Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so caused by: dlopen failed: cannot locate symbol "_ZN8facebook5react15makeJIntOrThrowEx" referenced by "/data/app/com.fanduel.android.self-7bFAALdOGMNizGU2gL_5nA==/lib/arm/libreactnativejni.so"...

    Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so caused by: dlopen failed: library "/data/user/0/com.fanduel.android.self/lib-0/libreactnativejni.so" not found

    Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so caused by: dlopen failed: library "libfb.so" not found

    Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so caused by: couldn't find DSO to load: libfb.so caused by: dlopen failed: library "/data/user/0/com.fanduel.android.self/lib-0/libfb.so" not found

    Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so caused by: couldn't find DSO to load: libfb.so caused by: couldn't find DSO to load: libc++_shared.so caused by: dlopen failed: "/data/data/com.fanduel.android.self/lib-1/libc++_shared.so" is 32-bit instead of 64-bit (this last one started appearing after we added 64-bit support)

    I wonder if the problem is just that the filesystem sometimes isn't fully flushed and ends up in an inconsistent state. Inspecting the SoLoader code, it tries to be robust (e.g. comparing a manifest of extracted files against the contests of the APK zipfiles) but it's hard to say if it's bulletproof. Maybe the manifest file is updated, but the writes to the .so files aren't completed, so the app thinks it has the current libraries installed when in fact it still has the old ones.

    Sorry for the lack of detail, I'm still trying to get a clearer picture of what's going on! The crash rate is quite low and we haven't managed to reproduce it ourselves. However, I think I've seen enough to be confident that it's the combination of SoLoader and app bundles that causes the problem.

    We plan to switch back to using an APK instead of an app bundle to see if that avoids the problem.

    opened by iain-merrick-fanduel 23
  • Can't load libraries that are in dynamic feature modules

    Can't load libraries that are in dynamic feature modules

    I'm trying to include a React Native activity in a dynamic feature module. It works when it's included in the base APK, but it looks like some hackery is needed when loading native libraries that are in an installed dynamic feature module: SplitInstallHelper.loadLibrary() should be used on 26+ rather than System.loadLibrary(). Currently I'm getting a crash saying the native library couldn't be found, and this seems like the most likely culprit. Since SoLoader is the one making the actual call, I'm not sure how I could do that from my end. I tried using sSystemLoadLibraryWrapper, but it looks like my loadLibrary() never gets called.

    opened by DSteve595 19
  • No static method loadLibrary in class

    No static method loadLibrary in class

    (Hi @passy, if you're reading this, good to 'see' you again.)

    This was previously reported in #10. I get https://pastebin.com/R5zfJtNn when starting up our app. Occurs with 0.5.0 and also with 0.4.1, but not with 0.3.0. Rebooting the Mac, as advised in that issue, did not help. We didn't attempt running with Windows.

    Repro steps:

    Our app had been running fine with SoLoader 0.4.1 and Fresco 1.9.0. We were doing a lazy-init of SoLoader; it is initialized by Fresco, and we didn't initialize Fresco until loading the first view with an image.

    Lately we tried to add Sonar to the app. This requires calling SoLoader.init directly in the Application.onCreate method. This craps out.

    The workaround is to downgrade to 0.3.0, but hopefully this can be fixed long term.

    opened by tyronen 17
  • SoLoader causes instrumented tests to crash

    SoLoader causes instrumented tests to crash

    Bug Report

    SoLoader looks for libfbjni in the .test path during instrumented tests. I am not sure how it makes that decision, since package name still reports without .test. Since the tests use a debug variant, I don't see a way to prevent Flipper loading during instrumented tests.

    java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/app/com.appscoop.takingroot.staging.test-1Dt01Y4N51I9qkS3sSAU3w==/base.apk!/lib/x86/libfbjni.so" not found
      at java.lang.Runtime.load0(Runtime.java:938)
      at java.lang.System.load(System.java:1631)
      at com.facebook.soloader.SoLoader$1.load(SoLoader.java:529)
      at com.facebook.soloader.DirectApkSoSource.loadLibrary(DirectApkSoSource.java:77)
      at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1038)
      at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:914)
      at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:826)
      at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:773)
      at com.facebook.soloader.NativeLoaderToSoLoaderDelegate.loadLibrary(NativeLoaderToSoLoaderDelegate.java:29)
      at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:51)
      at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:30)
      at com.facebook.jni.HybridData.<clinit>(HybridData.java:34)
      at com.facebook.flipper.android.FlipperThread.run(FlipperThread.java:25)
    libfbjni.so not found on /vendor/lib
    libfbjni.so not found on /system/lib
    couldn't find DSO to load: libfbjni.so
     SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/com.appscoop.takingroot.staging-_zWOlH2oMX4dVzDGOq6zXw==/lib/x86 flags = 0]
     SoSource 1: com.facebook.soloader.DirectApkSoSource[root = /data/app/com.appscoop.takingroot.staging.test-1Dt01Y4N51I9qkS3sSAU3w==/base.apk!/lib/x86]
     SoSource 2: com.facebook.soloader.DirectorySoSource[root = /vendor/lib flags = 2]
     SoSource 3: com.facebook.soloader.DirectorySoSource[root = /system/lib flags = 2]
     Native lib dir: /data/app/com.appscoop.takingroot.staging-_zWOlH2oMX4dVzDGOq6zXw==/lib/x86
     result: 0
    FATAL EXCEPTION: FlipperEventBaseThread
    Process: com.appscoop.takingroot.staging, PID: 5862
    java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libfbjni.so
        SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/com.appscoop.takingroot.staging-_zWOlH2oMX4dVzDGOq6zXw==/lib/x86 flags = 0]
        SoSource 1: com.facebook.soloader.DirectApkSoSource[root = /data/app/com.appscoop.takingroot.staging.test-1Dt01Y4N51I9qkS3sSAU3w==/base.apk!/lib/x86]
        SoSource 2: com.facebook.soloader.DirectorySoSource[root = /vendor/lib flags = 2]
        SoSource 3: com.facebook.soloader.DirectorySoSource[root = /system/lib flags = 2]
        Native lib dir: /data/app/com.appscoop.takingroot.staging-_zWOlH2oMX4dVzDGOq6zXw==/lib/x86
    result: 0
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1098)
        at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:914)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:826)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:773)
        at com.facebook.soloader.NativeLoaderToSoLoaderDelegate.loadLibrary(NativeLoaderToSoLoaderDelegate.java:29)
        at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:51)
        at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:30)
        at com.facebook.jni.HybridData.<clinit>(HybridData.java:34)
        at com.facebook.flipper.android.FlipperThread.run(FlipperThread.java:25)
    FATAL EXCEPTION: FlipperConnectionThread
    Process: com.appscoop.takingroot.staging, PID: 5862
     java.lang.NoClassDefFoundError: <clinit> failed for class com.facebook.flipper.android.EventBase; see exception in other thread
        at com.facebook.flipper.android.FlipperThread.run(FlipperThread.java:25)
    
    

    To Reproduce

    Run an instrumented test

    Environment

    Android API 31 debugImplementation 'com.facebook.flipper:flipper:0.137.0' debugImplementation 'com.facebook.soloader:soloader:0.10.3' releaseImplementation 'com.facebook.flipper:flipper-noop:0.137.0'

    opened by CiaraSouthgateTR 15
  • Add support for app bundle

    Add support for app bundle

    PR is related to #19

    Problem SoLoader cannot load .solibraries when an application is installed through App Bundle with config:

    bundle {
        abi {
            enableSplit = true
        }
    }
    

    The reason is that app bundle installation consists of multiple apks. For instance:

    • base.apk
    • split_config.arm64_v8a.apk
    • split_config.xxxhdpi.apk

    SoLoader class creates ApkSoSource pointing only to base.apk. But *.so files exist only in split_config.arm64_v8a.apk

    Solution Create separate ApkSoSource for each apk in the application folder. I couldn't figure out how to filter out apk without lib folder.

    Testing I haven't tried this with dynamic feature modules yet. So I can't say that it fully fixes #19. But at least it fixes facebook/fresco#2253 Any help with dynamic modules testing would be much appreciated.

    P.S. Due to some reasons, I can't wait for the new release of SoLoader lib, so I have published a temporary patched version to bintray in my account with different grouipId com.avito.android:patched-soloader:0.1.0 If you are against publishing your lib in a different account, please let me know. I'll remove my version immediately.

    CLA Signed 
    opened by nesterov-n 13
  • java.io.FileNotFoundException: open failed: EACCES (Permission denied)

    java.io.FileNotFoundException: open failed: EACCES (Permission denied)

    Hello,

    My application is crashing only when running on Android 5.X. Here are the details about the error:

    Error Stacktrace:

    FATAL EXCEPTION: main
    
    Caused by: java.io.FileNotFoundException: /data/data/APP_ID/lib-main/dso_lock: open failed: EACCES (Permission denied)
    
    FATAL EXCEPTION: main
    Process: APP_ID:p54993bdf2c8b1ed6b7cda959, PID: 10210
    java.lang.RuntimeException: Unable to create application APP_ID.MainApplication: java.lang.RuntimeException: java.io.FileNotFoundException: /data/data/APP_ID/lib-main/dso_lock: open failed: EACCES (Permission denied)
    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4556)
    	at android.app.ActivityThread.access$1500(ActivityThread.java:151)
    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
    	at android.os.Handler.dispatchMessage(Handler.java:102)
    	at android.os.Looper.loop(Looper.java:135)
    	at android.app.ActivityThread.main(ActivityThread.java:5254)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at java.lang.reflect.Method.invoke(Method.java:372)
    	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
    Caused by: java.lang.RuntimeException: java.io.FileNotFoundException: /data/data/APP_ID/lib-main/dso_lock: open failed: EACCES (Permission denied)
    	at com.facebook.soloader.SoLoader.init(SoLoader.java:192)
    	at APP_ID.MainApplication.onCreate(MainApplication.java:52)
    	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1012)
    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4553)
    	... 9 more
    Caused by: java.io.FileNotFoundException: /data/data/APP_ID/lib-main/dso_lock: open failed: EACCES (Permission denied)
    	at libcore.io.IoBridge.open(IoBridge.java:456)
    	at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
    	at java.io.FileOutputStream.<init>(FileOutputStream.java:72)
    	at com.facebook.soloader.FileLocker.<init>(FileLocker.java:35)
    	at com.facebook.soloader.FileLocker.lock(FileLocker.java:31)
    	at com.facebook.soloader.UnpackingSoSource.prepare(UnpackingSoSource.java:417)
    	at com.facebook.soloader.SoLoader.initSoSources(SoLoader.java:304)
    	at com.facebook.soloader.SoLoader.init(SoLoader.java:181)
    	at com.facebook.soloader.SoLoader.init(SoLoader.java:164)
    	at com.facebook.soloader.SoLoader.init(SoLoader.java:190)
    	... 12 more
    Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
    	at libcore.io.Posix.open(Native Method)
    	at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
    	at libcore.io.IoBridge.open(IoBridge.java:442)
    	... 21 more
    

    Enviroment:

    System:
        OS: macOS 11.6.1
        CPU: (8) x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
        Memory: 63.66 MB / 16.00 GB
        Shell: 5.8 - /bin/zsh
      Binaries:
        Node: 16.8.0 - /usr/local/bin/node
        Yarn: 1.22.10 - /usr/local/bin/yarn
        npm: 7.21.0 - /usr/local/bin/npm
        Watchman: 2021.08.23.00 - /usr/local/bin/watchman
      SDKs:
        iOS SDK:
          Platforms: iOS 15.0, DriverKit 20.4, macOS 11.3, tvOS 15.0, watchOS 8.0
        Android SDK:
          API Levels: 28, 29, 30, 31
          Build Tools: 28.0.3, 29.0.2, 30.0.2, 30.0.3, 31.0.0
          System Images: android-22 | Google APIs Intel x86 Atom, android-30 | Google APIs Intel x86 Atom
      IDEs:
        Android Studio: 4.2 AI-202.7660.26.42.7486908
        Xcode: 13.0/13A233 - /usr/bin/xcodebuild
      npmPackages:
        react: 16.9.0 => 16.9.0 
        react-native: 0.61.5 => 0.61.5
    

    Details

    The error happens when opening the application, only on Android 5.X versions.

    Already tried to add android:requestLegacyExternalStorage="true" to the AndroidManifest.xml, with no success.

    opened by fansilva1991 11
  • Optimize extraction strategy

    Optimize extraction strategy

    fix bug.

    Make extraction strategy of .so files smarter. In past versions, SoLoader follows standard rule to extract .so files from zip. However, some phones customize application installer which doesn't follow standard rule. And then, may cause crash because .so files of different ABI is loaded in the application. In this version, SoLoader will parse .so files in lib dir to determine which ABI of .so files should be extracted to lib-main dir. It can ensure that only one type of ABI will be loaded in the application so that SoLoader can be adapted for more models.

    CLA Signed Merged 
    opened by codyi96 10
  • SoLoader can't find .so deps when app is packaged as Prebuilt APK with Android AOSP Source

    SoLoader can't find .so deps when app is packaged as Prebuilt APK with Android AOSP Source

    Thanks so much for the hard work here!

    I have a unique situation that perhaps you can shed some light on!

    I am building a React Native Android application that will ship with an Android Device, and therefore it's being included in the AOSP build process as a prebuilt APK.

    When I install the APK via ADB, it runs great! However, when I build the Android source including the App, I flash the device, and see the App on the homescreen. However, when it boots, I see the following logs from SoLoader:

    01-08 06:20:53.366 2950-2997/com.lightos D/SoLoader: Loading lib dependencies: [libglog_init.so, libyoga.so, libprivatedata.so, libfb.so, libfolly_json.so, libjsc.so, libglog.so, libgnustl_shared.so, libandroid.so, liblog.so, libstdc++.so, libm.so, libc.so, libdl.so]
        About to load: libglog_init.so
    01-08 06:20:53.368 695-717/? D/ActivityTrigger: ActivityTrigger activityStopTrigger 
    01-08 06:20:53.373 3430-3514/? W/Adreno-ES20: <core_glFinish:34>: glFinish skipped: 0
    01-08 06:20:53.376 3430-3514/? W/Adreno-ES20: <core_glFinish:34>: glFinish skipped: 0
    01-08 06:20:53.465 2950-2997/com.lightos D/SoLoader: Loading lib dependencies: [libglog.so, libgnustl_shared.so, liblog.so, libstdc++.so, libm.so, libc.so, libdl.so]
        About to load: libglog.so
    01-08 06:20:53.515 2950-2997/com.lightos D/SoLoader: Loading lib dependencies: [libgnustl_shared.so, libstdc++.so, libm.so, libc.so, libdl.so]
    01-08 06:20:53.516 2950-2997/com.lightos D/SoLoader: About to load: libgnustl_shared.so
    01-08 06:20:53.550 2950-2997/com.lightos D/SoLoader: Loading lib dependencies: [libm.so, libc.so, libdl.so]
        About to load: libm.so
    01-08 06:20:53.551 2950-2997/com.lightos D/SoLoader: libm.so not found on /data/data/com.lightos/lib-main
        Result 0 for libm.so in source com.facebook.soloader.ApkSoSource[root = /data/data/com.lightos/lib-main flags = 1]
        Extraction logs: null
    01-08 06:20:53.552 2950-2997/com.lightos D/SoLoader: libm.so not found on /vendor/lib
        Result 0 for libm.so in source com.facebook.soloader.DirectorySoSource[root = /vendor/lib flags = 2]
    01-08 06:20:53.553 2950-2997/com.lightos D/SoLoader: Loaded: libm.so
    01-08 06:20:53.554 2950-2997/com.lightos D/SoLoader: About to load: libc.so
        libc.so not found on /data/data/com.lightos/lib-main
    01-08 06:20:53.555 2950-2997/com.lightos D/SoLoader: Result 0 for libc.so in source com.facebook.soloader.ApkSoSource[root = /data/data/com.lightos/lib-main flags = 1]
    01-08 06:20:53.556 2950-2997/com.lightos D/SoLoader: Extraction logs: null
        libc.so not found on /vendor/lib
    01-08 06:20:53.557 2950-2997/com.lightos D/SoLoader: Result 0 for libc.so in source com.facebook.soloader.DirectorySoSource[root = /vendor/lib flags = 2]
        Loaded: libc.so
    01-08 06:20:53.558 2950-2997/com.lightos D/SoLoader: About to load: libdl.so
        libdl.so not found on /data/data/com.lightos/lib-main
    01-08 06:20:53.559 2950-2997/com.lightos D/SoLoader: Result 0 for libdl.so in source com.facebook.soloader.ApkSoSource[root = /data/data/com.lightos/lib-main flags = 1]
        Extraction logs: null
    01-08 06:20:53.560 2950-2997/com.lightos D/SoLoader: libdl.so not found on /vendor/lib
        Result 0 for libdl.so in source com.facebook.soloader.DirectorySoSource[root = /vendor/lib flags = 2]
        Loaded: libdl.so
    01-08 06:20:53.563 2950-2997/com.lightos E/SoLoader: Error when loading lib: dlopen failed: couldn't map "/data/data/com.lightos/lib-main/libgnustl_shared.so" segment 2: Permission denied
    01-08 06:20:53.564 2950-2997/com.lightos E/SoLoader: Could not load: libgnustl_shared.so
        Could not load: libglog.so
        Could not load: libglog_init.so
    01-08 06:20:53.565 2950-2997/com.lightos E/SoLoader: Could not load: libreactnativejni.so
    01-08 06:20:53.570 2950-2997/com.lightos E/AndroidRuntime: FATAL EXCEPTION: Thread-2
        Process: com.lightos, PID: 2950
        java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so
            at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:522)
            at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:420)
            at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:370)
            at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:335)
            at com.facebook.react.bridge.ReactBridge.staticInit(ReactBridge.java:18)
            at com.facebook.react.bridge.NativeMap.<clinit>(NativeMap.java:19)
            at com.facebook.react.bridge.JSCJavaScriptExecutorFactory.create(JSCJavaScriptExecutorFactory.java:21)
            at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:917)
            at java.lang.Thread.run(Thread.java:764)
    01-08 06:20:53.547 2950-2950/com.lightos W/Thread-2: type=1400 audit(0.0:74): avc: denied { execute } for path="/data/data/com.lightos/lib-main/libgnustl_shared.so" dev="mmcblk0p38" ino=2430 scontext=u:r:system_app:s0 tcontext=u:object_r:system_app_data_file:s0 tclass=file permissive=0
    

    It appears to me that the install process that moves the .so files to the appropriate place on the Android filesystem isn't being run for the packaged app in the AOSP build step (but I have confirmed they are in the APK itself by unzipping and checking).

    What should I do to get this working as an Android prebuilt?

    Thank you!

    opened by hhff 10
  • SoLoader version with errors The app uses a buggy version of the SoLoader SDK, which can cause crashes. Update to a valid version of SoLoader.

    SoLoader version with errors The app uses a buggy version of the SoLoader SDK, which can cause crashes. Update to a valid version of SoLoader.

    I'm trying to publish an app on the playstore, but I don't understand where to add the implementation tag, which of the build.gradle files to put it in, and in which part of the code?

    opened by Rasantis 1
  • couldn't find DSO to load: libhermes-executor-debug.so

    couldn't find DSO to load: libhermes-executor-debug.so

    Description: After upgrading React Native project from 0.65.0 to 0.70.4 I end up in a problem with crashing app on start. The error appears in both debug and release build but in release build error cause app to freeze on splash screen. I tried all available solutions online but nothing didn't help.

    Build.gradle:

    project.ext.react = [
            enableHermes: true,
            enableVmCleanup: false,
    ]
    
    apply from: '../../node_modules/react-native/react.gradle'
    
    def enableSeparateBuildPerCPUArchitecture = false
    def enableProguardInReleaseBuilds = true
    def jscFlavor = 'org.webkit:android-jsc:+'
    def enableHermes = project.ext.react.get('enableHermes', true)
    def reactNativeArchitectures() {
        def value = project.getProperties().get("reactNativeArchitectures")
        return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
    }
    

    My dependencies:

    dependencies {
    
        implementation platform('com.google.firebase:firebase-bom:28.4.0')
    
        implementation 'com.facebook.soloader:soloader:0.10.4+'
    
        implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
       
        implementation 'androidx.work:work-runtime-ktx:2.7.0'
        
        implementation 'com.android.support:multidex:1.0.3'
        implementation fileTree(dir: 'libs', include: ['*.jar'])
    
        implementation 'com.facebook.react:react-native:' // From node_modules
    
        implementation 'androidx.appcompat:appcompat:1.2.0'
        implementation 'androidx.annotation:annotation:1.2.0'
        implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
    
        implementation 'com.google.android.gms:play-services-base:17.6.0'
    
    
        implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
        implementation project(':react-native-config')
    
        debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
            exclude group:'com.facebook.fbjni'
        }
    
        debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
            exclude group:'com.facebook.flipper'
            exclude group:'com.squareup.okhttp3', module:'okhttp'
        }
    
        debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
            exclude group:'com.facebook.flipper'
        }
    
        huaweiImplementation 'com.huawei.hms:hianalytics:6.3.0.302'
    
        if (enableHermes) {
            //noinspection GradleDynamicVersion
            implementation("com.facebook.react:hermes-engine:+") { // From node_modules
                exclude group:'com.facebook.fbjni'
            }
        } else {
            implementation jscFlavor
        }
    }
    
    opened by uuzelac 2
  • UnsatisfiedLinkError: couldn't find DSO to load: libgifimage.so caused by: dlopen failed

    UnsatisfiedLinkError: couldn't find DSO to load: libgifimage.so caused by: dlopen failed

    Hi,

    We use Fresco in our app and notice a lot of crashes in our production app related to SoLoader, mostly on Samsung devices running Android 12.

    Here's the crash report:

    Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libgifimage.so caused by: dlopen failed: cannot find "" from verneed[0] in DT_NEEDED list for "/data/user/0/com.app.androif/lib-main/libgifimage.so" result: 0
           at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:896)
           at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:725)
           at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:649)
           at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:629)
           at com.facebook.soloader.NativeLoaderToSoLoaderDelegate.loadLibrary(NativeLoaderToSoLoaderDelegate.java:29)
           at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:51)
           at com.facebook.soloader.nativeloader.NativeLoader.loadLibrary(NativeLoader.java:30)
           at com.facebook.animated.gif.GifImage.ensure(GifImage.java:44)
           at com.facebook.animated.gif.GifImage.createFromByteBuffer(GifImage.java:81)
           at com.facebook.animated.gif.GifImage.decodeFromByteBuffer(GifImage.java:117)
           at com.facebook.imagepipeline.animated.factory.AnimatedImageFactoryImpl.decodeGif(AnimatedImageFactoryImpl.java:85)
           at com.facebook.fresco.animation.factory.AnimatedFactoryV2Impl$1.decode(AnimatedFactoryV2Impl.java:90)
           at com.facebook.imagepipeline.decoder.DefaultImageDecoder.decodeGif(DefaultImageDecoder.java:139)
           at com.facebook.imagepipeline.decoder.DefaultImageDecoder$1.decode(DefaultImageDecoder.java:60)
           at com.facebook.imagepipeline.decoder.DefaultImageDecoder.decode(DefaultImageDecoder.java:120)
           at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.internalDecode(DecodeProducer.java:386)
           at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.doDecode(DecodeProducer.java:328)
           at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.access$400(DecodeProducer.java:145)
           at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder$1.run(DecodeProducer.java:198)
           at com.facebook.imagepipeline.producers.JobScheduler.doJob(JobScheduler.java:224)
           at com.facebook.imagepipeline.producers.JobScheduler.access$000(JobScheduler.java:24)
           at com.facebook.imagepipeline.producers.JobScheduler$1.run(JobScheduler.java:90)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
           at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:52)
           at java.lang.Thread.run(Thread.java:1012)
    

    In case it helps, here's another report that looks related to the previous but with no mention of SoLoader:

    Fatal Exception: java.lang.UnsatisfiedLinkError: No implementation found for com.facebook.animated.gif.GifImage com.facebook.animated.gif.GifImage.nativeCreateFromDirectByteBuffer(java.nio.ByteBuffer, int, boolean) (tried Java_com_facebook_animated_gif_GifImage_nativeCreateFromDirectByteBuffer and Java_com_facebook_animated_gif_GifImage_nativeCreateFromDirectByteBuffer__Ljava_nio_ByteBuffer_2IZ)
           at com.facebook.animated.gif.GifImage.nativeCreateFromDirectByteBuffer(GifImage.java)
           at com.facebook.animated.gif.GifImage.createFromByteBuffer(GifImage.java:84)
           at com.facebook.animated.gif.GifImage.decodeFromByteBuffer(GifImage.java:117)
           at com.facebook.imagepipeline.animated.factory.AnimatedImageFactoryImpl.decodeGif(AnimatedImageFactoryImpl.java:85)
           at com.facebook.fresco.animation.factory.AnimatedFactoryV2Impl$1.decode(AnimatedFactoryV2Impl.java:90)
           at com.facebook.imagepipeline.decoder.DefaultImageDecoder.decodeGif(DefaultImageDecoder.java:139)
           at com.facebook.imagepipeline.decoder.DefaultImageDecoder$1.decode(DefaultImageDecoder.java:60)
           at com.facebook.imagepipeline.decoder.DefaultImageDecoder.decode(DefaultImageDecoder.java:120)
           at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.internalDecode(DecodeProducer.java:386)
           at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.doDecode(DecodeProducer.java:328)
           at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder.access$400(DecodeProducer.java:145)
           at com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder$1.run(DecodeProducer.java:198)
           at com.facebook.imagepipeline.producers.JobScheduler.doJob(JobScheduler.java:224)
           at com.facebook.imagepipeline.producers.JobScheduler.access$000(JobScheduler.java:24)
           at com.facebook.imagepipeline.producers.JobScheduler$1.run(JobScheduler.java:90)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
           at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:52)
           at java.lang.Thread.run(Thread.java:1012)
    

    Here are the version of the libs that we use:

    com.facebook.fresco:fresco = 2.4.0 com.facebook.fresco:animated-gif = 2.4.0 com.facebook.fresco:imagepipeline-okhttp3 = 2.4.0 jp.wasabeef:fresco-processors = 2.1.0 com.facebook.fresco:webpsupport = 2.4.0

    We've also recently force updated SoLoader that's used by Fresco in order to avoid the common crash in Android 12:

    configurations.all {
            resolutionStrategy {
                force "com.facebook.soloader:soloader:0.10.4"
            }
        }
    

    None of it seemed to have help though. Any idea what the cause might be?

    opened by waseefakhtar 0
  • SoLoader: libjscexecutor.so not found on /data/app/

    SoLoader: libjscexecutor.so not found on /data/app/

    After having upgraded to rn 0.70 and having enabled the new architecture the app crashes as soon as it starts. i'm using com.facebook.soloader:soloader:0.10.4.

    These are the logs:

    [[A09-15 07:13:39.941  1951  4549 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=io.app/.MainActivity bnds=[437,166][644,487]} from uid 10239
    09-15 07:13:39.970  1951  3298 D CoreBackPreview: Window{e8e2133 u0 Splash Screen io.app}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@7ca14ee, mPriority=0}
    09-15 07:13:39.978  1951  2167 I ActivityManager: Start proc 15010:io.app/u0a386 for next-top-activity {io.app/io.app.MainActivity}
    09-15 07:13:40.014 15010 15010 V GraphicsEnvironment: ANGLE Developer option for 'io.app' set to: 'default'
    09-15 07:13:40.015 15010 15010 V GraphicsEnvironment: ANGLE GameManagerService for io.app: false
    09-15 07:13:40.063 15010 15010 V SoLoader: libjscexecutor.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.063 15010 15010 V SoLoader: libjscexecutor.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.064 15010 15010 E SoLoader: 	SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64 flags = 0]
    09-15 07:13:40.064 15010 15010 E SoLoader: 	SoSource 1: com.facebook.soloader.DirectApkSoSource[root = (/data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a, )]
    09-15 07:13:40.064 15010 15010 E SoLoader: 	Native lib dir: /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.064 15010 15010 V SoLoader: libhermes.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.066 15010 15028 W doo.android.app: ClassLoaderContext type mismatch. expected=PCL, found=DLC (PCL[] | DLC[];PCL[/data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk*2128366013:/data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!classes2.dex*1136234098:/data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!classes3.dex*3365625202:/data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!classes4.dex*2038946974:/data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!classes5.dex*104917966])
    09-15 07:13:40.066 15010 15010 V SoLoader: liblog.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.066 15010 15010 V SoLoader: liblog.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.067 15010 15010 V SoLoader: libm.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.067 15010 15010 V SoLoader: libm.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.067 15010 15010 V SoLoader: libdl.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.067 15010 15010 V SoLoader: libdl.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.067 15010 15010 V SoLoader: libc.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.067 15010 15010 V SoLoader: libc.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.070 15010 15010 D SoLoader: libhermes.so found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.070 15010 15010 V SoLoader: libhermes-executor-debug.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.070 15010 15010 V SoLoader: libhermes-executor-debug.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.071 15010 15010 E SoLoader: 	SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64 flags = 0]
    09-15 07:13:40.071 15010 15010 E SoLoader: 	SoSource 1: com.facebook.soloader.DirectApkSoSource[root = (/data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a, )]
    09-15 07:13:40.071 15010 15010 E SoLoader: 	Native lib dir: /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.071 15010 15010 V SoLoader: libhermes-executor-release.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.073 15010 15010 V SoLoader: libandroid.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.073 15010 15010 V SoLoader: libandroid.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.076 15010 15010 D SoLoader: libhermes-executor-release.so found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.100 15010 15044 V SoLoader: libfbjni.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.104 15010 15044 D SoLoader: libfbjni.so found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.109 15010 15040 I FA      :   adb shell setprop debug.firebase.analytics.app io.app
    09-15 07:13:40.121  1951  4549 D CoreBackPreview: Window{1f2a54d u0 io.app/io.app.MainActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@27b0f6f, mPriority=0}
    09-15 07:13:40.152 15010 15044 V SoLoader: librnscreens_modules.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.154  1951  3298 D BiometricService/PreAuthInfo: Package: io.app Sensor ID: 0 Modality: 2 Status: 1
    09-15 07:13:40.166 15010 15044 D SoLoader: librnscreens_modules.so found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.180 15010 15044 V SoLoader: libreactnativejni.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.183 15010 15044 D SoLoader: libreactnativejni.so found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.196 15010 15044 V SoLoader: appmodules.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.200  1951  2138 I ActivityTaskManager: Displayed io.app/.MainActivity: +248ms
    09-15 07:13:40.206  8469  8469 I GoogleInputMethodService: GoogleInputMethodService.onStartInput():1957 onStartInput(EditorInfo{inputType=0x0(NULL) imeOptions=0x0 privateImeOptions=null actionName=UNSPECIFIED actionLabel=null actionId=0 initialSelStart=-1 initialSelEnd=-1 initialCapsMode=0x0 hintText=null label=null packageName=io.app fieldId=-1 fieldName=null extras=null}, false)
    09-15 07:13:40.207 15010 15044 D SoLoader: appmodules.so found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.208 15010 15044 V SoLoader: libturbomodulejsijni.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.213 15010 15044 D SoLoader: libturbomodulejsijni.so found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.308 15010 15061 V SoLoader: libfabricjni.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.320 15010 15061 D SoLoader: libfabricjni.so found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.324 15010 15061 V SoLoader: libsafeareacontext_modules.so not found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/lib/arm64
    09-15 07:13:40.332 15010 15061 D SoLoader: libsafeareacontext_modules.so found on /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!/lib/arm64-v8a
    09-15 07:13:40.557  1951  4549 D CoreBackPreview: Window{e8e2133 u0 Splash Screen io.app EXITING}: Setting back callback null
    09-15 07:13:40.557  1951 11593 W InputManager-JNI: Input channel object 'e8e2133 Splash Screen io.app (client)' was disposed without first being removed with the input manager!
    09-15 07:13:40.668 15067 15067 F DEBUG   : Cmdline: io.app
    09-15 07:13:40.668 15067 15067 F DEBUG   : pid: 15010, tid: 15060, name: mqt_js  >>> io.app <<<
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #00 pc 00000000000b2bdc  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libc++_shared.so (BuildId: 9eb617a4c141d9c0422d2c46392d3cfa6c601be1)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #01 pc 00000000000aec8c  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libc++_shared.so (__gxx_personality_v0+348) (BuildId: 9eb617a4c141d9c0422d2c46392d3cfa6c601be1)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #02 pc 00000000000224e8  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libfbjni.so (BuildId: 27496b9e5551bff5c79496b936b663bf8868c68b)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #03 pc 00000000000225a4  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libfbjni.so (BuildId: 27496b9e5551bff5c79496b936b663bf8868c68b)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #04 pc 00000000000194c0  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libfbjni.so (facebook::jni::throwPendingJniExceptionAsCppException()+260) (BuildId: 27496b9e5551bff5c79496b936b663bf8868c68b)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #05 pc 00000000000735f0  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libreactnativejni.so (facebook::react::MethodInvoker::invoke(std::__ndk1::weak_ptr<facebook::react::Instance>&, facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::react::JBaseJavaModule, facebook::jni::JObject, void>::_javaobject*>, folly::dynamic const&)+2932) (BuildId: 12c534de1dc1d1fb3eda232734035251397a0dbb)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #06 pc 000000000006dec8  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libreactnativejni.so (facebook::react::JavaNativeModule::callSerializableNativeHook(unsigned int, folly::dynamic&&)+176) (BuildId: 12c534de1dc1d1fb3eda232734035251397a0dbb)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #07 pc 0000000000090e60  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libreactnativejni.so (facebook::react::ModuleRegistry::callSerializableNativeHook(unsigned int, unsigned int, folly::dynamic&&)+76) (BuildId: 12c534de1dc1d1fb3eda232734035251397a0dbb)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #08 pc 00000000000210f4  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes-executor-release.so (facebook::react::JSIExecutor::nativeCallSyncHook(facebook::jsi::Value const*, unsigned long)+476) (BuildId: 6eb65d03a45d854bb97e4b55946d4cc9d7a0c269)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #09 pc 000000000001cff0  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes-executor-release.so (std::__ndk1::__function::__func<facebook::jsi::DecoratedHostFunction, std::__ndk1::allocator<facebook::jsi::DecoratedHostFunction>, facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>::operator()(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*&&, unsigned long&&)+68) (BuildId: 6eb65d03a45d854bb97e4b55946d4cc9d7a0c269)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #10 pc 0000000000078848  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes.so (BuildId: bfdd57c4771e62b7bffba4cdf4866ed5970218a4)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #11 pc 00000000000781d0  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes.so (BuildId: bfdd57c4771e62b7bffba4cdf4866ed5970218a4)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #12 pc 000000000007df68  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes.so (BuildId: bfdd57c4771e62b7bffba4cdf4866ed5970218a4)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #13 pc 000000000008fd90  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes.so (BuildId: bfdd57c4771e62b7bffba4cdf4866ed5970218a4)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #14 pc 00000000000919ac  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes.so (BuildId: bfdd57c4771e62b7bffba4cdf4866ed5970218a4)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #15 pc 0000000000091074  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes.so (BuildId: bfdd57c4771e62b7bffba4cdf4866ed5970218a4)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #16 pc 00000000000c41b4  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes.so (BuildId: bfdd57c4771e62b7bffba4cdf4866ed5970218a4)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #17 pc 000000000006d940  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes.so (BuildId: bfdd57c4771e62b7bffba4cdf4866ed5970218a4)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #18 pc 000000000006d7b8  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes.so (facebook::hermes::HermesRuntime::evaluateJavaScriptWithSourceMap(std::__ndk1::shared_ptr<facebook::jsi::Buffer const> const&, std::__ndk1::shared_ptr<facebook::jsi::Buffer const> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)+100) (BuildId: bfdd57c4771e62b7bffba4cdf4866ed5970218a4)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #19 pc 000000000006e7f4  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes.so (BuildId: bfdd57c4771e62b7bffba4cdf4866ed5970218a4)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #20 pc 000000000001e240  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libhermes-executor-release.so (facebook::react::JSIExecutor::loadBundle(std::__ndk1::unique_ptr<facebook::react::JSBigString const, std::__ndk1::default_delete<facebook::react::JSBigString const> >, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)+568) (BuildId: 6eb65d03a45d854bb97e4b55946d4cc9d7a0c269)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #21 pc 000000000009489c  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libreactnativejni.so (BuildId: 12c534de1dc1d1fb3eda232734035251397a0dbb)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #22 pc 0000000000095d70  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libreactnativejni.so (BuildId: 12c534de1dc1d1fb3eda232734035251397a0dbb)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #23 pc 0000000000068ee8  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libreactnativejni.so (BuildId: 12c534de1dc1d1fb3eda232734035251397a0dbb)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #24 pc 0000000000015e84  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libfbjni.so (facebook::jni::detail::MethodWrapper<void (facebook::jni::JNativeRunnable::*)(), &(facebook::jni::JNativeRunnable::run()), facebook::jni::JNativeRunnable, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::jni::JNativeRunnable, facebook::jni::JRunnable>::JavaPart, facebook::jni::JRunnable, void>::_javaobject*>)+32) (BuildId: 27496b9e5551bff5c79496b936b663bf8868c68b)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #25 pc 0000000000015dfc  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk!libfbjni.so (facebook::jni::detail::FunctionWrapper<void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::jni::JNativeRunnable, facebook::jni::JRunnable>::JavaPart, facebook::jni::JRunnable, void>::_javaobject*>), facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::jni::JNativeRunnable, facebook::jni::JRunnable>::JavaPart, facebook::jni::JRunnable, void>::_javaobject*, void>::call(_JNIEnv*, _jobject*, void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::jni::JNativeRunnable, facebook::jni::JRunnable>::JavaPart, facebook::jni::JRunnable, void>::_javaobject*>))+60) (BuildId: 27496b9e5551bff5c79496b936b663bf8868c68b)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #29 pc 000000000047be3c  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk (com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage+0)
    09-15 07:13:40.668 15067 15067 F DEBUG   :       #33 pc 000000000047bfca  /data/app/~~NqNYL9iv_ztFjHcIeq0IqA==/io.app-TRK-DHKoT5lwf622ePv0vQ==/base.apk (com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run+74)
    09-15 07:13:40.687  1951 15079 W ActivityTaskManager:   Force finishing activity io.app/.MainActivity
    09-15 07:13:40.735  1951  3298 I WindowManager: WIN DEATH: Window{1f2a54d u0 io.app/io.app.MainActivity}
    09-15 07:13:40.735  1951 11598 I ActivityManager: Process io.app (pid 15010) has died: prcp TOP 
    09-15 07:13:40.735  1951  3298 W InputManager-JNI: Input channel object '1f2a54d io.app/io.app.MainActivity (client)' was disposed without first being removed with the input manager!
    09-15 07:13:40.780  1951  2143 W WindowManager: Failed to deliver inset state change to w=Window{1f2a54d u0 io.app/io.app.MainActivity EXITING}
    09-15 07:13:40.787  1951  2143 W WindowManager: Exception thrown during dispatchAppVisibility Window{1f2a54d u0 io.app/io.app.MainActivity EXITING}
    
    opened by allemanfredi 3
  • Only Initializing SoLoader Once Broke Dynamic Feature Module.

    Only Initializing SoLoader Once Broke Dynamic Feature Module.

    https://github.com/facebook/SoLoader/commit/3b241005a2226aca68d73853c2eaf56d1304e5c0

    This commit checks if SoLoaders have been loaded once via

    if (sSoSources != null) {
          return true;
    }
    

    But this broke DFM functionality. let's imagine that we have SoLoader init call on MainApplication. Then the user download a DFM module with multiple .so files packed inside the DFM module, when we call SoLoader.init again on DFM module so loader will not load and search .so files inside DFM module and instead do nothing.

    cc @simpleton .

    opened by gedeagas 3
  • SoLoader.initSoSources ExtractFromZipSoSource blocked

    SoLoader.initSoSources ExtractFromZipSoSource blocked

    image

    main 5 RUNNABLE at java.util.regex.Matcher.setInputImpl(Native Method) at java.util.regex.Matcher.resetForInput(Matcher.java:1194) at java.util.regex.Matcher.reset(Matcher.java:1184) at java.util.regex.Matcher.reset(Matcher.java:280) at java.util.regex.Matcher.(Matcher.java:186) at java.util.regex.Pattern.matcher(Pattern.java:1034) at com.facebook.soloader.ExtractFromZipSoSource$ZipUnpacker.ensureDsos(SourceFile:9) at com.facebook.soloader.ExtractFromZipSoSource$ZipUnpacker.getDsoManifest(SourceFile:1) at com.facebook.soloader.UnpackingSoSource.refreshLocked(SourceFile:14) at com.facebook.soloader.UnpackingSoSource.prepare(SourceFile:8) at com.facebook.soloader.SoLoader.initSoSources(SourceFile:18) at com.facebook.soloader.SoLoader.init(SourceFile:7) at com.facebook.soloader.SoLoader.init(SourceFile:1) at com.facebook.imagepipeline.nativecode.NativeCodeInitializer.init(SourceFile:1) at java.lang.reflect.Method.invoke(Native Method) at com.facebook.drawee.backends.pipeline.Fresco.initialize(SourceFile:14) at com.facebook.drawee.backends.pipeline.Fresco.initialize(SourceFile:3)

    Soloader Version = 0.10.3

    BackupSoSources : I can turn it off manually to bypass the block. But it's not clear what that does. So I came to consult

    opened by online2 0
Releases(v0.10.5)
  • v0.10.5(Dec 1, 2022)

    Use system linker by default on Android N and above devices.

    Full Changelog: https://github.com/facebook/SoLoader/compare/v0.10.4...v0.10.5

    Source code(tar.gz)
    Source code(zip)
  • v0.10.4(Jun 28, 2022)

    Feature

    Support pre-computing the dependency

    Fixes

    Wrongly loaded directApkLdPath(#104) SoLoader causes crashes on migration to an Android 12 device(#100 #88 ) Fix race condition in SoLoader#init(#99 )

    Full Changelog: https://github.com/facebook/SoLoader/compare/v0.10.3...v0.10.4

    Source code(tar.gz)
    Source code(zip)
  • v0.10.3(Nov 4, 2021)

    Fixes

    Fix UnsatisfiedLinkError if OEM is using the library that the APP is using as well.

    Full Changelog: https://github.com/facebook/SoLoader/compare/v0.10.2...v0.10.3

    Source code(tar.gz)
    Source code(zip)
  • v0.10.2(Nov 4, 2021)

    Fixes

    • Fix Crash on android v12, unable to create application *java.io.SyncFailedException: sync failed (#80)
    • Fix Android app bundle crashes of soloader:Anyone can run my issues sample (#83)

    Highlights

    • Support directly load the libraries from the APK, if they're uncompressed and page-aligned in APK.

    Full Changelog: https://github.com/facebook/SoLoader/compare/v0.10.1...v0.10.2

    Source code(tar.gz)
    Source code(zip)
  • v0.10.1(Feb 1, 2021)

  • v0.10.0(Jan 29, 2021)

    Fixes

    • Fix ClosedChannelException (https://github.com/facebook/SoLoader/commit/f8d54f50df729c93a6d99b7606f07701eaa8c239)
    • Invoke Thread.interrupted() to fix infinite loop (https://github.com/facebook/SoLoader/commit/0aae63305192eb3df1ee2e39fccc89291e3805b8)
    • Release lib lock before JniOnLoad to avoid deadlock on re-entry (https://github.com/facebook/SoLoader/commit/06e415e2412f92e4bb5e726c7d97626d3fdef020)
    • Add synchronized block to protect against race condition (#69)

    Highlights

    • Improved error message in case of unsatisfied links. (https://github.com/facebook/SoLoader/commit/30af7cefe67b061591b2a3f0a959c833e16f266f)
    • Retry extract_DT_NEEDED when interrupted (https://github.com/facebook/SoLoader/commit/a5e96b9eb3a28d1ee1753bcc94d85ec4efa8c980)
    Source code(tar.gz)
    Source code(zip)
  • v0.9.0(Apr 16, 2020)

    Fixes

    • Fix LD_LIBRARY_PATH when app running in 64 bits (3311e1a)
    • Annotation library is now a JAR instead of an AAR (#61)
    • Fix crash on Android 4.1 (6dce279)
    • Various improvements for previously rather cryptic error messages
    • Implement Marshmallow getSupportedAbis to avoid reading /proc/self/exe on Android M+ (c796ed6d6237109c54a1122e3b4e76fadaef63d1)
    • Retry on load failure (this is a potentially breaking behaviour change) (f226061b357e0b1c4e6fc86192600a4114f7d8ee)

    API changes

    • Expose isInitialized (21071b4923bab8b2a310ffb4e921c4c0fb6c345c)
    Source code(tar.gz)
    Source code(zip)
  • v0.8.2(Feb 12, 2020)

    Changes

    • Make SoLoader.init public so consumers can provide their own loaders: https://github.com/facebook/SoLoader/commit/1ddbcbbb1f182f79dbac5cf01b517b35c2cf8992
    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(Jan 28, 2020)

    • Include reason for SO load fail in message (4213ab1af2ef5a43e0b8d3805f4821766b946386)
    • Send a path string of the directories where all transitive deps of unwindstack_binary live (ea5102959a334e28316fd79c5cebaa8b39fd1d9f)
    • Retry native library load if tracing before SoLoader initialized (3f60655f0475762abac99f93dd78845d26b20110)
    • Make SOLoader SysUtils less noisy (3224384c15713f47952633fb009afc9186fae119)
    • Log supported ABIs when throwing e_machine mismatch exception (b6854af2d0c6b4deb50fbedc06a582cec3538054)
    • Filter out incompatible ABIs but do not reorder the list (20198bf2952ca7e182d7e5764e33e931f9533554)

    Full changelog: https://github.com/facebook/SoLoader/compare/v0.8.0...v0.8.1

    Source code(tar.gz)
    Source code(zip)
  • v0.8.0(Sep 17, 2019)

    • Added new NativeLoader abstraction (nativeloader artifact). You can use NativeLoader.loadLibrary(...) instead of SoLoader.loadLibrary(...). This allows you to use any native library loader (e.g. the default system implementation) by implementing a custom NativeLoaderDelegate and calling NativeLoader.init(yourImplementation). Calling SoLoader.init(...) will automatically set a SoLoader delegate.
    • Added new annotation artifact so that the @DoNotOptimize annotation can be used separately.
    • Smarter .so extraction strategy (b2555b82643e26d8830a876a64e43a040b4e3280 - thanks @codyi96). This should fix the ".so is 64-bit instead of 32-bit" issue reported for some devices.
    Source code(tar.gz)
    Source code(zip)
  • v0.6.1(Jul 1, 2019)

    • Add support for system apps (https://github.com/facebook/SoLoader/commit/c1a8c67666e19fc71b710a67c9b36db2005c9ca3)
    • New API to retrieve full library path (https://github.com/facebook/SoLoader/commit/ce30ca4e9252854ac9a05322e7f3abc7c7b93bfc)
    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Jan 29, 2019)

    Highlights

    • Support for Android App Bundles (https://github.com/facebook/SoLoader/pull/26) by @nesterov-n.
    • Improved locking (https://github.com/facebook/SoLoader/commit/ea661f5640be9b659c437380165aa81758e50680).
    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Jun 12, 2018)

  • v0.4.1(Apr 17, 2018)

  • v0.4.0(Apr 17, 2018)

    • Relicensed under Apache-2
    • Backup SoSource to use in case a library file corruption - https://github.com/facebook/SoLoader/commit/0b981f5a9f2b7778a8adfc251c2524ce4b2a7e26
    • Improved logging - https://github.com/facebook/SoLoader/commit/220cf04b9d2269d6dc054a170bf9e75a977378b2

    Full list of changes: https://github.com/facebook/SoLoader/compare/v0.3.0...v0.4.0

    Source code(tar.gz)
    Source code(zip)
Owner
Meta
We are working to build community through open source technology. NB: members must have two-factor auth.
Meta
Native solution for common React Native problem of focused views being covered by soft input view.

react-native-avoid-softinput Native solution for common React Native problem of focused views being covered by soft input view. It is solved by listen

Mateusz Mędrek 312 Jan 2, 2023
Android Utilities Library build in kotlin Provide user 100 of pre defined method to create advanced native android app.

Android Utilities Library build in kotlin Provide user 100 of pre defined method to create advanced native android app.

Shahid Iqbal 4 Nov 29, 2022
Routable, an in-app native URL router, for Android

Routable Routable is an in-app native URL router, for Android. Also available for iOS. Usage Set up your app's router and URLs: import com.usepropelle

Clay Allsopp 476 Nov 11, 2022
React Native wrapper to bridge our iOS and Android SDK

React Native wrapper to bridge our iOS and Android SDK

Intercom 94 Jan 1, 2023
Fuzzy string matching for Kotlin (JVM, native, JS, Web Assembly) - port of Fuzzy Wuzzy Python lib

FuzzyWuzzy-Kotlin Fuzzy string matching for Kotlin (JVM, iOS) - fork of the Java fork of of Fuzzy Wuzzy Python lib. For use in on JVM, Android, or Kot

WillowTree, LLC 54 Nov 8, 2022
Multiplaform kotlin library for calculating text differences. Based on java-diff-utils, supports JVM, JS and native targets.

kotlin-multiplatform-diff This is a port of java-diff-utils to kotlin with multiplatform support. All credit for the implementation goes to original a

Peter Trifanov 51 Jan 3, 2023
Gitversion - A native console application to calculate a version based on git commits and tags

GitCommit A native console application to calculate a version based on git commi

Solugo 5 Sep 13, 2022
Native Kotlin library for time-based TOTP and HMAC-based HOTP one-time passwords

A kotlin implementation of HOTP (RFC-4226) and TOTP (RFC-6238). Supports validation and generation of 2-factor authentication codes, recovery codes and randomly secure secrets.

Robin Ohs 6 Dec 19, 2022
A Kotlin native Postgres driver for SqlDelight.

Module postgres-native-sqldelight A native Postgres driver for SqlDelight. Source code Install This package is uploaded to MavenCentral and supports m

Philip Wedemann 19 Dec 30, 2022
iTunes 11-style color matching code for Android

##About ColorArt is a library that uses an image to create a themed image/text display. It's a port of the idea found on the Panic Blog to work on And

Michael Evans 896 Jan 8, 2023
Trail is a simple logging system for Java and Android. Create logs using the same API and the library will detect automatically in which platform the code is running.

Trail Trail is a simple logging system for Java and Android. Create logs using the same API and the library will detect automatically in which platfor

Mauricio Togneri 13 Aug 29, 2022
recompose is a tool for converting Android layouts in XML to Kotlin code using Jetpack Compose.

recompose is a tool for converting Android layouts in XML to Kotlin code using Jetpack Compose.

Sebastian Kaspari 565 Jan 2, 2023
A low intrusive, configurable android library that converts layout XML files into Java code to improve performance

qxml English 一个低侵入,可配置的 Android 库,用于将 layout xml 文件转换为 Java 代码以提高性能。 与X2C的对比 X2C: 使用注解处理器生成View类,使用时需要在类中添加注解,并替换setContentView方法,侵入性较强; 对于布局属性的支持不够完美

null 74 Oct 6, 2022
Runtime code generation for the Java virtual machine.

Byte Buddy runtime code generation for the Java virtual machine Byte Buddy is a code generation and manipulation library for creating and modifying Ja

Rafael Winterhalter 5.3k Jan 7, 2023
A small library which will save you from writing the same intent creation code again and again for the most simple tasks

Android Intents A small library which will save you from writing the same intent creation code again and again for the most simple tasks. I found myse

MarvinLabs 420 Nov 20, 2022
Polytech computer graphics couerse code scam script

Js-code-parser Polytech computer graphics couerse code scam script Копируйте строку скрипта с дебаггера с странички лабы. Вставляйте в файлик test.txt

Daniil Bakin 2 Dec 18, 2022
A Telegram bot utilities that help to reduce the code amount

Flume Party A Telegram bot utilities that help to reduce code amount. Real project examples Pull Party Bot: 19% of code has been reduced. Resistance B

pool party 1 Jun 8, 2022
Provides custom lint rules developed by Bottle Rocket Studios to help keep our code cleaner

Provides custom lint rules developed by Bottle Rocket Studios to help keep our code cleaner, detect and mitigate possible security issues, and allow us to write rules around best practices and usage as necessary in the future

Bottle Rocket Studios 1 Feb 11, 2022
λRPC allows using code with high-order functions as a service

λRPC Simple native RPC with high order functions support. Inspired by @altavir and Communicator. λRPC allows using code with high-order functions as a

Andrey Stoyan 5 May 18, 2022