13

How can I fix this issues while compiling release build in Android Studio 3.0 RC2

Error:Error: commons-logging defines classes that conflict with classes now provided by Android. Solutions include finding newer versions or alternative libraries that don't have the same problem (for example, for httpclient use HttpUrlConnection or okhttp instead), or repackaging the library using something like jarjar. [DuplicatePlatformClasses]

Error:Error: httpclient defines classes that conflict with classes now provided by Android. Solutions include finding newer versions or alternative libraries that don't have the same problem (for example, for httpclient use HttpUrlConnection or okhttp instead), or repackaging the library using something like jarjar. [DuplicatePlatformClasses]

My build.gradle is

compile 'net.zetetic:android-database-sqlcipher:3.5.7@aar'
compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
    transitive = true;
}    
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.android.support:cardview-v7:26.1.0'
compile 'com.android.support:recyclerview-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
compile 'com.android.support:multidex:1.0.2'
compile project(':rangebar')
compile project(':expandablerecyclerview')
compile project(':materialsearchview')
// Play Services
compile 'com.google.android.gms:play-services-auth:11.4.2'
compile 'com.google.android.gms:play-services-analytics:11.4.2'
compile 'com.google.android.gms:play-services-plus:11.4.2'
compile 'com.google.android.gms:play-services-maps:11.4.2'
compile 'com.google.android.gms:play-services-location:11.4.2'
compile 'com.google.android.gms:play-services-places:11.4.2'
compile 'com.google.android.gms:play-services-wearable:11.4.2'
compile 'com.google.android.gms:play-services-fitness:11.4.2'
// Firebase
compile 'com.google.firebase:firebase-core:11.4.2'
compile 'com.google.firebase:firebase-messaging:11.4.2'
compile 'com.google.api-client:google-api-client:1.22.0'
compile 'com.google.apis:google-api-services-people:v1-rev66-1.22.0'
// Just GSON
compile 'com.google.code.gson:gson:2.8.0'
// Don't remember what is it about

// View binder
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
// Social SDK's
compile 'com.facebook.android:facebook-android-sdk:4.20.0'
// Glide libs
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'jp.wasabeef:glide-transformations:2.0.1'
// SquareUp libs
compile 'com.squareup.okio:okio:1.13.0'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.2.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.7.0'
compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile 'com.squareup.okhttp3:okhttp-urlconnection:3.7.0'
compile 'com.google.dagger:dagger:2.11'
compile 'com.google.dagger:dagger-android-support:2.11'
annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
compile 'com.github.florent37:dagger-auto-inject:1.0.0'
annotationProcessor 'com.github.florent37:dagger-auto-inject-compiler:1.0.0'
compile('com.hwangjr.rxbus:rxbus:1.0.5') {
    exclude group: 'com.jakewharton.timber', module: 'timber'
}
compile 'com.github.PhilJay:MPAndroidChart:v3.0.1'
// ?
compile 'it.neokree:MaterialTabs:0.11'
// ?
compile 'com.getbase:floatingactionbutton:1.10.1'
compile 'com.github.castorflex.smoothprogressbar:library:1.1.0'
compile 'com.yqritc:recyclerview-flexibledivider:1.4.0'
compile 'com.pnikosis:materialish-progress:1.7'
compile 'com.r0adkll:slidableactivity:2.0.5'
compile 'com.github.asyl.animation:arcanimator:1.0.0'
compile 'com.pacioianu.david:ink-page-indicator:1.2.0'
compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.6'
// Circular adapter for picker
compile 'com.mobsandgeeks:adapter-kit:0.5.3'
// RX libs
compile 'io.reactivex:rxandroid:1.2.1'
compile 'io.reactivex:rxjava:1.3.0'
compile 'com.wdullaer:materialdatetimepicker:3.3.0'
compile 'com.github.aakira:expandable-layout:1.6.0@aar'
compile 'com.google.maps.android:android-maps-utils:0.5'
compile 'com.mikhaellopez:circularimageview:3.0.2'
//CALENDAR
compile 'joda-time:joda-time:2.9.9'
compile 'com.googlecode.libphonenumber:libphonenumber:8.3.2'
compile 'com.github.deano2390:MaterialShowcaseView:1.1.0'
compile 'me.leolin:ShortcutBadger:1.1.13@aar'
compile 'com.prolificinteractive:material-calendarview:1.4.3'
compile 'net.time4j:time4j-android:3.29-2017a'
// TODO CHECK
compile 'com.github.michael-rapp:android-material-dialog:4.0.1'
compile 'com.daimajia.swipelayout:library:1.2.0@aar'
compile 'com.jakewharton.rxbinding:rxbinding:1.0.0'
// TODO CHECK
compile 'me.zhanghai.android.materialratingbar:library:1.0.2'
compile 'com.github.markomilos:paginate:0.5.1'
compile 'com.github.jimcoven:jcropimageview:0.22'
compile 'ru.egslava:MaskedEditText:1.0.5'
compile 'com.github.delight-im:Android-SimpleLocation:v1.0.1'
Anton A.
  • 1,718
  • 15
  • 37

6 Answers6

10

Add to build.gradle located in app module

configurations {
    all {
        exclude module: 'httpclient'
        exclude module: 'commons-logging'
    }
}
phnmnn
  • 12,813
  • 11
  • 47
  • 64
  • 2
    Can you explain the problem please? and when I add this then error about can't find the httpclient library. – Asif Mushtaq Nov 09 '17 at 13:09
  • It is not working for me. I am getting Error:Error: json defines classes that conflict with classes now provided by Android. Solutions include finding newer versions or alternative libraries that don't have the same problem (for example, for httpclient use HttpUrlConnection or okhttp instead), or repackaging the library using something like jarjar. [DuplicatePlatformClasses]. – hitesh141 Feb 09 '18 at 03:36
5

In my case I use this dependency:

compile 'com.github.nkzawa:socket.io-client:0.3.0'

The json is wrong. I changed

implementation('com.github.nkzawa:socket.io-client:0.3.0',{
    exclude group:'org.json',module: 'json'
})
Jules Dupont
  • 7,259
  • 7
  • 39
  • 39
Adolfo Rangel
  • 71
  • 1
  • 3
4

The same error i fixed by this piece of code...

android {
...

configurations {
    all {
        exclude module: 'httpclient'
        exclude module: 'json'
        exclude group: 'org.apache.httpcomponents'
    }
}

...
}
2

add to app/build.gradle

configurations {
    all {
        exclude module: 'httpclient'
        exclude module: 'commons-logging'
    }
}
srs
  • 2,521
  • 16
  • 16
1

I fixed this with a clean/rebuild. Also be sure to have annotationProcessor 'com.github.bumptech.glide:compiler:4.2.0' in your gradle for Glide.

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')

compile 'com.github.PhilJay:MPAndroidChart:v3.0.1'
compile 'com.github.recruit-lifestyle:FloatingView:2.2'
compile 'com.dropbox.core:dropbox-core-sdk:3.0.5'
compile 'com.squareup.okio:okio:1.13.0'
compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile 'com.github.bumptech.glide:glide:4.2.0'
compile 'com.opencsv:opencsv:4.0'
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:recyclerview-v7:26.1.0'
compile 'com.android.support:cardview-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
compile 'com.android.support:preference-v7:26.1.0'
compile 'com.android.support:preference-v14:26.1.0'
compile 'com.google.android.gms:play-services-vision:11.4.2'
compile 'com.google.android.gms:play-services-places:11.4.2'

annotationProcessor 'com.github.bumptech.glide:compiler:4.2.0'
}
0

In my case the first issue (commons-logging) was solved excluding it from opencsv import:

implementation('com.opencsv:opencsv:4.5') {
    exclude group: 'commons-logging'
}
mengoni
  • 248
  • 3
  • 8