android gradle

android - ¿Cómo encuentro las dependencias que causan la duplicación de clases?



gradle (2)

Necesitas excluir el arco Jar. En primer lugar, compruebe de dónde viene el duplicado. Puede verlo si imprime su árbol de dependencias con una tarea de gradle:

./gradlew -q dependencies app:dependencies --configuration compile

Luego, excluya el tarro de arco más antiguo como lo hizo para glide pero con la exclusión correcta, por ejemplo:

implementation (''android.arch.persistence.room:runtime:1.0.0-alpha1'') { exclude group: "android.arch.core" }

Cuando construyo el proyecto de Android, muestra la excepción de "clase duplicada",

1 exception was raised by workers: java.lang.RuntimeException: java.lang.RuntimeException: Duplicate class android.arch.core.executor.DefaultTaskExecutor found in modules classes.jar (android.arch.core:core:1.0.0-alpha1) and classes.jar(android.arch.core:runtime:1.1.1) Duplicate class android.arch.core.executor.TaskExecutor found in modules classes.jar (android.arch.core:core:1.0.0-alpha1) and classes.jar (android.arch.core:runtime:1.1.1)**

¿Cómo podría encontrar y corregir qué clase de lib utiliza duplicados en mi proyecto?

app.Gradle

android { compileSdkVersion 28 buildToolsVersion ’28.0.3’ defaultConfig { minSdkVersion 18 targetSdkVersion 28 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] } } } dependencies { implementation ''com.crashlytics.sdk.android:crashlytics:2.9.9'' implementation fileTree(include: [''*.jar''], dir: ''libs'') androidTestImplementation(''com.android.support.test.espresso:espresso-core:3.0.2'', { exclude group: ''com.android.support'', module: ''support-annotations'' }) implementation ’org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.31’api(''com.google.maps:google-maps-services:0.9.3'') { exclude group: ''com.google.code.findbugs'', module: ''jsr305'' } implementation ''com.android.support:appcompat-v7:28.0.0’ implementation ''com.android.support:design:28.0.0'' implementation ''com.google.android.exoplayer:exoplayer:2.8.2’ implementation ''android.arch.persistence.room:runtime:1.0.0-alpha1'' annotationProcessor ''android.arch.persistence.room:compiler:1.0.0-alpha1'' implementation ''com.jakewharton.rxbinding:rxbinding:1.0.1'' implementation ''com.google.android.gms:play-services-maps:16.1.0'' implementation ''com.google.android.gms:play-services-location:16.0.0'' implementation ''com.google.android.gms:play-services-analytics:16.0.8'' implementation ''com.google.android.gms:play-services-places:16.1.0'' implementation ''com.google.maps.android:android-maps-utils:0.5'' implementation ''com.google.firebase:firebase-messaging:17.6.0'' implementation ''com.google.firebase:firebase-core:16.0.8'' implementation ''com.google.firebase:firebase-auth:16.2.1'' implementation ''com.facebook.android:facebook-android-sdk:5.0.0'' implementation ''com.android.support:multidex:1.0.3'' implementation ''com.squareup.retrofit2:retrofit:2.5.0'' implementation ''com.squareup.okhttp3:logging-interceptor:3.14.1'' implementation ''com.squareup.retrofit2:converter-gson:2.5.0'' implementation ''com.squareup.retrofit2:adapter-rxjava:2.5.0'' implementation ''io.reactivex:rxandroid:1.2.1'' implementation ''io.reactivex:rxjava:1.3.8'' implementation ''com.artemzin.rxjava:proguard-rules:1.3.3.0'' implementation ''com.google.code.gson:gson:2.8.5'' implementation ''org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.1'' implementation ''org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'' implementation ''de.hdodenhof:circleimageview:3.0.0'' implementation (''com.github.bumptech.glide:glide:4.9.0'') { exclude group: "com.android.support" } annotationProcessor ''com.github.bumptech.glide:compiler:4.9.0'' implementation ''com.googlecode.libphonenumber:libphonenumber:8.10.11'' implementation project('':lib-zxing'') implementation ''com.googlecode.mp4parser:isoparser:1.1.22'' implementation ''com.github.lassana:continuous-audiorecorder:1.3.1'' implementation ''me.leolin:ShortcutBadger:1.1.22@aar'' implementation ''com.timehop.stickyheadersrecyclerview:library:0.4.3'' implementation ''org.jsoup:jsoup:1.11.3'' testImplementation ''junit:junit:4.13-beta-2'' }

lib-zxing

android { compileSdkVersion 28 buildToolsVersion ’28.0.3’ defaultConfig { minSdkVersion 14 targetSdkVersion 28 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }dependencies { api fileTree(include: [''*.jar''], dir: ''libs'') androidTestImplementation(''com.android.support.test.espresso:espresso-core:3.0.2'', { exclude group: ''com.android.support'', module: ''support-annotations'' }) implementation ''com.android.support:appcompat-v7:28.0.0’ testImplementation ''junit:junit:4.13-beta-2'' }


Puede usar el cuadro de diálogo Buscar en todas partes (cuadro de diálogo que se abre al presionar Mayúsculas dos veces).

Simplemente copie el nombre de la clase y péguelo en el cuadro de diálogo de búsqueda y mostrará los resultados en el menú desplegable. Puede examinar el resultado y verificar si hay entradas duplicadas. La ruta completa de la clase se mostrará junto al nombre de la clase para que pueda encontrar bibliotecas relativas y excluirlas de forma segura de cualquiera de las bibliotecas.