Android Studio java.util.zip.ZipException:重复条目

前端之家收集整理的这篇文章主要介绍了Android Studio java.util.zip.ZipException:重复条目前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这是我的build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "com.arefin.lasttrykinvay"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
        }
    }
}
repositories {
    flatDir {
       dirs 'libs'
    }
}


dependencies {
    compile fileTree(dir: 'libs',include: ['*.jar'])
    compile(name:'kinvey-android-2.10.5',ext:'aar')
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile google-http-client-1.19.0.jar 
    compile google-http-client-android-1.19.0.jar
    compile google-http-client-gson-1.19.0.jar 
    compile google-http-client-jackson2-1.19.0.jar 
    compile gson-2.1.jar guava-18.0.jar 
    compile jackson-core-2.1.3.jar 
    compile java-api-core-2.10.1.jar 
    compile java-api-core-2.10.5.jar 
    compile kinvey-android-2.10.5.aar
    testCompile 'junit:junit:4.12'
}

这是错误

Error:Execution Failed for task ':app:transformClassesWithJarMergingForRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/kinvey/java/AbstractClient$Builder$Option.class

当我删除

compile 'com.android.support:appcompat-v7:23.1.1'

以上错误修复但其他功能无法正常工作.喜欢的价值观/风格无法找到

Theme.AppCompat.Light.DarkActionBar

我怎么能重复输入错误

最佳答案
删除重复的库依赖项.

虽然OP没有写出来,但是如果你看一下原始问题的评论,你会发现它们在libs目录中有很多.jar库文件,它们都包含在以下行中:

dependencies {
  compile fileTree(dir: 'libs',include: ['*.jar'])
  //...
}

在他们的一条评论中,他们在libs目录中列出了以下文件

> google-http-client-1.19.0.jar
> google-http-client-android-1.19.0.jar
> google-http-client-gson-1.19.0.jar
> google-http-client-jackson2-1.19.0.jar
> gson-2.1.jar
> guava-18.0.jar
> jackson-core-2.1.3.jar
> java-api-core-2.10.1.jar重复!
> java-api-core-2.10.5.jar重复!
> kinvey-android-2.10.5.aar

您可以清楚地看到java-api-core包含两次,一次用于2.10.1版本,一次用于2.10.5版本.构建系统不够智能,只能将其中一个引入,而且不应该这样.用户应该告诉构建系统要包含哪些库以及要包含哪些库.

通过从libs目录中删除java-api-core-2.10.1.jar文件,应该解决错误.

这可能不是您遇到的确切问题,但可能是类似的结果.

为了帮助避免这些情况,这里有几个最佳实践:

1.不要使用编译fileTree ….

而不是隐藏您所包含的所有.jar文件,而是显式地声明您在依赖项{}下编译的文件.这样可以更容易地查看何时出现重复,冲突和其他类似问题.

2.尽可能使用Maven而不是.jar文件.

虽然它不会抓住这个,但是通过使用Maven并在不同的版本中将相同的依赖项放两次,它应该只解决其中一个依赖项(我认为)并避免像你所看到的那样的神秘错误.

猜你在找的Android相关文章