Skip to content

SoLoader causes instrumented tests to crash #94

@CiaraSouthgateTR

Description

@CiaraSouthgateTR

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'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions