facebookarchive / conceal

Conceal provides easy Android APIs for performing fast encryption and authentication of data.
http://facebook.github.io/conceal/
Other
2.96k stars 431 forks source link

Incompatibility with the Facebook library Flipper #198

Open FBisca opened 6 years ago

FBisca commented 6 years ago

We are trying to add the facebook library Flipper in our project (https://github.com/facebook/flipper)

And I noticed that Conceal uses the same classes/jni as Flipper but instead of adding them as a transitive dependency, they are added as sourceSets.

conceal/build.gradle

sourceSets {

      main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = [
            'first-party/fbjni/java',
            'first-party/proguard/annotations',
            'first-party/soloader',
            'java']
        jniLibs.srcDir 'libs'
        jni.srcDirs = []
      }
    }

This is what happens when we are using Conceal together with Flipper:

myProject/build.gradle

implementation "com.facebook.conceal:conceal:2.0.1@aar"
debugImplementation('com.facebook.sonar:sonar:0.6.13')

Compilation Error

AGPBI: {"kind":"error","text":"Program type already present: com.facebook.jni.IteratorHelper","sources":[{}],"tool":"D8"}

Transitive dependencies from Flipper

+--- com.facebook.sonar:sonar:0.6.13
|    +--- com.facebook.sonar:fbjni:0.6.13
|    |    \--- com.facebook.soloader:soloader:0.5.1
|    +--- com.facebook.soloader:soloader:0.5.1

I tried to exclude the transitive dependencies from Flipper but it seems that the Conceal don't have all the .so files needed.