We have integrated the Marketing Cloud Android SDK (v. 5.3.2) using these instructions: http://salesforce-marketingcloud.github.io/JB4A-SDK-Android/sdk-implementation/implement-sdk-google.html

When building the app in Android Studio, we get:

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/tozny/crypto/android/AesCbcWithIntegrity$CipherTextIvMac.class

Apparently both the Marketing Cloud library and another library in our project rely on: https://github.com/tozny/java-aes-crypto

We can try excluding this dependency, by writing this is build.gradle: compile ('com.salesforce.marketingcloud:marketingcloudsdk:5.3.2') { exclude group: 'com.tozny.crypto.android' }

Is there any downside in doing this, or what else should we try?

Thanks, Robert

  • Updated the answer below as the problem has been resolved in the latest release. Thank you for bringing this to our attention.
    – Bill Mote
    Jan 30 '18 at 19:31

As it currently stands there isn't much, if anything, you can do here. The Marketing Cloud SDK compiles the tozny library into the distributed aar rather than declaring it in the pom file distributed. This is done because there are certain modifications made to the code required by the SDK. Because of this, adding an exclude dependency declaration to your build.gradle file will not have the desired effect.

I'll open a ticket to get this addressed in the SDK.

UPDATE 20180130 -- The latest release, v5.4.2, contains a fix for this issue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.