'AllDevelopmentDebugClassesForMultiDex'。 > java.util.zip.ZipException:重复条目:retrofit/android/AndroidApacheClient.class
'AllDevelopmentDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: retrofit/android/AndroidApacheClient.class
我的build.gradle
:
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
buildscript {
repositories
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
android {
compileSdkVersion 22
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.myapp"
minSdkVersion 19
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
productFlavors {
production {
applicationId "com.myapp"
}
development {
applicationId "com.myapp.development"
}
staging {
applicationId "com.myapp.staging"
}
qa {
applicationId "com.myapp.qa"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
res.srcDirs = ['src/main/res', 'src/main/res/drawable', 'src/main/res/views/activities', 'src/main/res/anim']
}
}
}
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile project(':facebook')
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile files('libs/gson-2.3.1.jar')
compile files('libs/retrofit-1.9.0.jar')
compile('com.digits.sdk.android:digits:1.8.0@aar') {
transitive = true;
}
}
我已经尝试启用 multidex
,也没有来自 Fabric 支持论坛的帮助。
还尝试将 gson
模块从数字中排除为
compile('com.digits.sdk.android:digits:1.8.0@aar') {
transitive = true;
exclude module: 'gson';
}
PS:我只想使用 phone 号码 verification/signin 功能,不需要 Twitter 登录功能。我也在用 retrofit 和 picasso。
您的冲突发生在 retrofit
,而不是 gson
。
在您的 digits
依赖项中将 exclude module: 'gson'
更改为 exclude module: 'retrofit'
。
当您包含 digits
SDK 时,您实际上不需要包含 Picasso、Gson、Retrofit、Digit 等库。在解析这些库时,这些实际上可能会创建 duplicate entry
异常。
我的build.gradle
:
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
buildscript {
repositories
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
android {
compileSdkVersion 22
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.myapp"
minSdkVersion 19
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
productFlavors {
production {
applicationId "com.myapp"
}
development {
applicationId "com.myapp.development"
}
staging {
applicationId "com.myapp.staging"
}
qa {
applicationId "com.myapp.qa"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
res.srcDirs = ['src/main/res', 'src/main/res/drawable', 'src/main/res/views/activities', 'src/main/res/anim']
}
}
}
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile project(':facebook')
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile files('libs/gson-2.3.1.jar')
compile files('libs/retrofit-1.9.0.jar')
compile('com.digits.sdk.android:digits:1.8.0@aar') {
transitive = true;
}
}
我已经尝试启用 multidex
,也没有来自 Fabric 支持论坛的帮助。
还尝试将 gson
模块从数字中排除为
compile('com.digits.sdk.android:digits:1.8.0@aar') {
transitive = true;
exclude module: 'gson';
}
PS:我只想使用 phone 号码 verification/signin 功能,不需要 Twitter 登录功能。我也在用 retrofit 和 picasso。
您的冲突发生在 retrofit
,而不是 gson
。
在您的 digits
依赖项中将 exclude module: 'gson'
更改为 exclude module: 'retrofit'
。
当您包含 digits
SDK 时,您实际上不需要包含 Picasso、Gson、Retrofit、Digit 等库。在解析这些库时,这些实际上可能会创建 duplicate entry
异常。