我必须整合 paytabs 支付网关。在集成他们的sdk模块之后,应用程序不会构建&应用程序出错。我的应用程序gradle具有以下依赖性。
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.google.android.gms:play-services:9.8.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'de.hdodenhof:circleimageview:1.3.0'
compile 'com.google.code.gson:gson:2.6.1'
compile 'com.android.support:multidex:1.0.1'
compile 'com.afollestad.material-dialogs:core:0.9.1.0'
compile 'com.kyleduo.switchbutton:library:1.4.4'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile project(':PayTabs_SDK_SRC')
}
错误看起来像:
错误:任务':app:transformClassesWithJarMergingForDebug'的执行失败。 com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:okhttp3 / Address.class
更新 如果我删除下面两个依赖项我没有得到任何错误。但必须要使用它 改造依赖。有什么想法吗?
compile'com.squareup.retrofit2:retrofit:2.1.0'
编译'com.squareup.retrofit2:converter-gson:2.0.2'
答案 0 :(得分:2)
看,PayTabs SDK包括
com.squareup.okhttp3(version 3.5.0)
和com.squareup.retrofit2:retrofit:2.2.0使用okhttp3(version 3.6.0)
混淆了Gradle并生成了dexException(重复文件异常)。
要解决此问题,您需要排除okhttp3
版本之一。在build.gradle文件中替换以下这些行。
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
使用以下代码行:
compile ('com.squareup.retrofit2:retrofit:2.2.0'){
exclude group: "com.squareup.okhttp3"
}
compile ('com.squareup.retrofit2:converter-gson:2.2.0'){
exclude group: "com.squareup.okhttp3"
}
希望它能奏效。