关于ZAKER 融媒体解决方案 合作 加入

android – 如何找到导致类重复的依赖项?

CocoaChina 09-18

当我构建android项目时 , 它显示 "Duplicate class" 异常 ,

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 ) **

我怎样才能找到并修复 lib 在我的项目中使用重复类的内容?

app.Gradle

android {compileSdkVersion 28buildToolsVersion ’ 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- 斑马线

android {compileSdkVersion 28buildToolsVersion ’ 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'}

最佳答案

您需要排除拱形 Jar. 首先检查副本的来源 . 如果使用 gradle 任务打印依赖关系树 , 则可以看到它:

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

然后排除旧的拱形 Jar, 就像你为滑行所做的那样 , 但是使用正确的排除 , 例如:

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

以上内容由"CocoaChina"上传发布 查看原文
相关标签 android

觉得文章不错,微信扫描分享好友

扫码分享