Error while compiling release build in Android Stu

2020-02-05 07:29发布

问题:

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'

回答1:

Add to build.gradle located in app module

configurations {
    all {
        exclude module: 'httpclient'
        exclude module: 'commons-logging'
    }
}


回答2:

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

android {
...

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

...
}


回答3:

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'
})


回答4:

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'
}


回答5:

add to app/build.gradle

configurations {
    all {
        exclude module: 'httpclient'
        exclude module: 'commons-logging'
    }
}


回答6:

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'
}