dimanche 5 juillet 2015

Conflict with android package - Amazon SNS

I have been trying to integrate the Amazon SNS client with an android project.

I am including the library using the following dependency commands

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.amazonaws:aws-java-sdk-sns:1.10.+'
    compile 'com.google.android.gms:play-services:7.5.0'
}

Thus it automatically includes the above library (and its dependencies : aws_java_sdk_core and aws_java_sdk_sqs). All 3 libraries have a version 1.10.2.

The problem is that the AWS core has two modules

  1. commons-logging (commons-logging:commons-logging:1.1.3)
  2. httpclient (org.apache.httpcomponents:httpclient:4.3.6)

As android has the same packages internally, it excludes these modules to avoid any conflict. The result is that when the aws code tries to access some classes from these modules. Tt is expecting a different version of it, does not find the expected method, and crashes the application.

Is there any way to override android's exclude? (Or is there a better way to handle this situation?)




Aucun commentaire:

Enregistrer un commentaire