java.util.zip.ZipException:重复条目:dagger/Provides.class
java.util.zip.ZipException: duplicate entry: dagger/Provides.class
当我同步项目时一切正常,但是当我尝试 运行 时出现此错误:
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: dagger/Provides.class
这是我的应用程序 build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "appID"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.jakewharton:butterknife:8.4.0'
apt 'com.jakewharton:butterknife-compiler:8.4.0'
apt 'com.google.dagger:dagger-compiler:2.5'
compile 'com.google.dagger:dagger:2.5'
provided 'javax.annotation:jsr250-api:1.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile('com.sumup:merchant-sdk:1.61.0@aar') {
transitive = true
}
}
如果我 运行 没有 compile 'com.google.dagger:dagger:2.5'
编译成功.. 请帮助.
更新:
它looks like sumup sdk 与 dagger 2.+ 不兼容。
所以我已经降级到 dagger 1.+ 并且工作正常。到目前为止没有出现其他问题。
在降级之前,您是否会考虑尝试将 compile 'com.google.dagger:dagger:2.5'
替换为以下内容:
compile ('com.google.dagger:dagger:2.0') {
exclude group: 'javax.inject'
}
这将排除重复项 class。
我在切换到 Dagger 时遇到了类似的问题。
我们在@Component 和@Module 类 的不同工件中使用相同的包名称,而 Dagger 在我们使用相同包的每个工件中生成相同的 Dagger...Component.java
文件。
我们将组件移动到每个工件中的唯一包中后,问题就解决了。
当我同步项目时一切正常,但是当我尝试 运行 时出现此错误:
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: dagger/Provides.class
这是我的应用程序 build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "appID"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.jakewharton:butterknife:8.4.0'
apt 'com.jakewharton:butterknife-compiler:8.4.0'
apt 'com.google.dagger:dagger-compiler:2.5'
compile 'com.google.dagger:dagger:2.5'
provided 'javax.annotation:jsr250-api:1.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile('com.sumup:merchant-sdk:1.61.0@aar') {
transitive = true
}
}
如果我 运行 没有 compile 'com.google.dagger:dagger:2.5'
编译成功.. 请帮助.
更新:
它looks like sumup sdk 与 dagger 2.+ 不兼容。
所以我已经降级到 dagger 1.+ 并且工作正常。到目前为止没有出现其他问题。
在降级之前,您是否会考虑尝试将 compile 'com.google.dagger:dagger:2.5'
替换为以下内容:
compile ('com.google.dagger:dagger:2.0') {
exclude group: 'javax.inject'
}
这将排除重复项 class。
我在切换到 Dagger 时遇到了类似的问题。
我们在@Component 和@Module 类 的不同工件中使用相同的包名称,而 Dagger 在我们使用相同包的每个工件中生成相同的 Dagger...Component.java
文件。
我们将组件移动到每个工件中的唯一包中后,问题就解决了。