程序类型已存在:com.squareup.okhttp.Address

4
我正在尝试配置我的Android应用程序以使用Firebase Cloud Firestore。我还依赖于OKHttp3。 Gradle会同步正常,但我无法编译应用程序并运行它。我得到了以下错误:
“Program type already present: com.squareup.okhttp.Address”
我已经按照此处描述的所有步骤进行操作:https://firebase.google.com/docs/firestore/quickstart,并且在将此行添加到我的build.gradle文件之前,我可以正常运行该应用程序:
implementation 'com.google.firebase:firebase-database:15.0.0'

我检查了项目中的依赖关系,发现Firestore依赖于com.squareup.okhttp,而我已经依赖于com.squareup.okhttp3。由于它们具有不同的包结构,所以我不明白为什么它们会冲突。
编辑:
以下是我的build.gradle文件中的依赖项:
dependencies {

implementation "org.jetbrains.kotlin:kotlin-stdlib:${rootProject.ext.kotlin_version}"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:0.19.3'
implementation 'com.jakewharton:butterknife:8.8.0'
kapt 'com.jakewharton:butterknife-compiler:8.8.0'
compileOnly 'com.google.auto.value:auto-value:1.3'
annotationProcessor 'com.google.auto.value:auto-value:1.3'
implementation "com.android.support:design:${rootProject.ext.support_library_version}"
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation "com.android.support:support-compat:${rootProject.ext.support_library_version}"
implementation "com.android.support:support-core-utils:${rootProject.ext.support_library_version}"
implementation "com.android.support:support-core-ui:${rootProject.ext.support_library_version}"
implementation "com.android.support:support-fragment:${rootProject.ext.support_library_version}"
implementation "com.android.support:gridlayout-v7:${rootProject.ext.support_library_version}"
implementation "com.android.support:recyclerview-v7:${rootProject.ext.support_library_version}"
implementation "com.android.support:customtabs:${rootProject.ext.support_library_version}"
implementation 'com.android.support:multidex:1.0.1'
implementation 'com.google.code.gson:gson:2.8.0'
implementation "com.google.android.gms:play-services-auth:${rootProject.ext.play_services_version}"
implementation "com.google.android.gms:play-services-maps:${rootProject.ext.play_services_version}"
implementation "com.google.android.gms:play-services-location:${rootProject.ext.play_services_version}"
implementation "com.google.android.gms:play-services-analytics:${rootProject.ext.play_services_version}"
implementation "com.google.android.gms:play-services-wallet:${rootProject.ext.play_services_version}"
implementation "com.google.firebase:firebase-core:${rootProject.ext.firebase_version}"
implementation "com.google.firebase:firebase-crash:${rootProject.ext.firebase_version}"
implementation "com.google.firebase:firebase-messaging:${rootProject.ext.firebase_version}"
implementation "com.google.firebase:firebase-invites:${rootProject.ext.firebase_version}"
implementation "com.google.firebase:firebase-ads:${rootProject.ext.firebase_version}"

// Because RxAndroid releases are few and far between, it is recommended you also

// explicitly depend on RxJava's latest version for bug fixes and new features.
implementation 'io.reactivex.rxjava2:rxjava:2.0.9'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation('com.crashlytics.sdk.android:crashlytics:2.7.0') {
    transitive = true
}
implementation 'org.apache.commons:commons-lang3:3.4'
implementation 'com.facebook.android:facebook-android-sdk:4.13.1'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'io.card:android-sdk:5.4.2'
implementation 'com.github.chrisbanes.photoview:library:1.2.3'
implementation 'uk.co.chrisjenx:calligraphy:2.1.0'
implementation 'com.tonicartos:superslim:0.4.13'
implementation 'com.sothree.slidinguppanel:library:3.1.1'
implementation 'com.rengwuxian.materialedittext:library:2.1.4'
implementation 'konifar:fab-transformation:1.0.0'
implementation 'me.grantland:autofittextview:0.2.1'
implementation 'com.braintreepayments.api:braintree:2.3.3'
implementation 'se.emilsjolander:stickylistheaders:2.7.0'
implementation 'net.danlew:android.joda:2.9.4.1'
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.1'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
implementation 'com.facebook.stetho:stetho:1.5.0'
implementation 'ru.gildor.coroutines:kotlin-coroutines-retrofit:0.9.0'

testImplementation 'junit:junit:4.12'
testImplementation 'org.powermock:powermock-module-junit4:1.7.1'
testImplementation 'org.powermock:powermock-module-junit4-rule:1.7.1'
testImplementation 'org.powermock:powermock-api-mockito2:1.7.1'
testImplementation 'org.powermock:powermock-classloading-xstream:1.7.1'
testImplementation 'org.robolectric:robolectric:3.6.1'
testImplementation 'org.robolectric:shadows-multidex:3.6.1'
testImplementation 'org.khronos:opengl-api:gl1.1-android-2.1_r1'
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.8.9'
testImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
testImplementation 'joda-time:joda-time:2.9.4'
androidTestImplementation fileTree(include: 'robotium-solo-5.3.0.jar', dir: 'libs')

//Screenshots
androidTestImplementation 'com.squareup.spoon:spoon-client:1.2.0'

// Cucumber
androidTestImplementation 'info.cukes:cucumber-java:1.2.5'
androidTestImplementation('info.cukes:cucumber-android:1.2.4') {
    exclude module: 'cucumber-jvm-deps'
}
androidTestImplementation('info.cukes:cucumber-picocontainer:1.2.4') {
    exclude module: 'cucumber-jvm-deps'
}
androidTestImplementation 'info.cukes:cucumber-jvm-deps:1.0.3'
androidTestImplementation 'com.android.support.test:runner:0.5'
androidTestImplementation 'com.android.support:support-annotations:25.3.1'

// Set this dependency to use JUnit 4 rules
androidTestImplementation 'com.android.support.test:rules:0.5'

// Set this dependency to build and run Espresso tests
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2') {
    exclude module: 'support-annotations'
}
androidTestImplementation 'com.android.support.test.espresso:espresso-intents:2.2.2'

}

请添加您的 build.grade 文件内容。 - Alex Mamo
https://dev59.com/cFYM5IYBdhLWcg3wzChg - John Boker
我尝试了你发送的链接中提供的不同答案,但没有任何区别... - Moh Kh
2个回答

3

已修复

事实证明问题与OkHttp无关 - 它与新版本的android studio(3.0.0及以上)中的Dexer编译器有关。 进入gradle.properties文件并添加以下行:

android.enableD8=false

问题已得到解决。现在应用程序可以正常编译。

编辑

评论是正确的 - 你不应该这样做。问题实际上是项目中gradle依赖项与手动导入的.jar文件发生了冲突。如果你遇到了这个问题,请检查是否有:

  1. Gradle中不同模块导入了相同库的不同版本
  2. 你也在使用Gradle导入的库的Jar文件

尽管编译器发出了关于此的弃用警告,但这仍然有效。 - saintjab
你把这行代码放在文件的哪个位置了? - cincospenguinos
请问您可以告诉我在哪里添加gradle.properties文件吗? - Leo
8
提示:'android.enableD8'选项已被弃用,不应再使用。 - Siddhesh Shirodkar

0

进入gradle.properties文件并添加以下行:

android.enableR8=false
android.enableD8=false

希望这个能够正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接