如何解决java.util.zip.ZipException? [英] How to resolve java.util.zip.ZipException?

查看:4144
本文介绍了如何解决java.util.zip.ZipException?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Whever我试着调试和部署我的Andr​​oid应用程序(在Android的工作室0.9)我收到以下错误:

Whever I try to debug and deploy my android application (in Android Studio 0.9) I get the following error:

Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
java.util.zip.ZipException: duplicate entry: android/support/multidex/BuildConfig.class

为把事情说清楚这里是我的行为简史:

To make things clear here is a brief history of my actions:

  1. 今天上午,该项目是工作的罚款
  2. 在增加了一些附加的类和方法
  3. 打破了限制,收到此错误:无法执行DEX:方法ID不是在[0,0xFFFF的]:65536
  4. 决定将multiDex支持添加到我的项目为减少依赖是不是一种选择
  1. This morning the project was working fine
  2. Added some additional classes and methods
  3. Broke the limit and received this error: Unable to execute dex: method ID not in [0, 0xffff]: 65536
  4. Decided to add multiDex support to my project as reducing the dependencies was not an option

从那时起,我不断收到描述的错误只是增加multiDex到我的项目遵循这个SO发布<一后href="http://stackoverflow.com/questions/23614095/using-gradle-to-split-external-libraries-in-separated-dex-files-to-solve-android">Using摇篮到分离的DEX文件分割外部库来解决Android的Dalvik的64K方法额度。

Since then I keep getting the described error just after adding multiDex to my project by following this SO post Using Gradle to split external libraries in separated dex files to solve Android Dalvik 64k methods limit.

下面是我的build.gradle文件:

Here is my build.gradle file:

apply plugin: 'com.android.application'

repositories {
    jcenter()
}

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.0'

    defaultConfig {
        applicationId "com.stackoverflow.application"
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
        multiDexEnabled = true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dexOptions {
        preDexLibraries = false
    }
}

afterEvaluate {
    tasks.matching {
        it.name.startsWith('dex')
    }.each { dx ->
        if (dx.additionalParameters == null) {
            dx.additionalParameters = []
        }
        dx.additionalParameters += '--multi-dex'
        dx.additionalParameters += "--main-dex-list=$projectDir/<filename>".toString() // enable the main-dex-list
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':viewPagerIndicatorLibrary')
    compile 'com.google.android:multidex:0.1'
    compile 'com.j256.ormlite:ormlite-android:4.48'
    compile 'com.j256.ormlite:ormlite-core:4.48'
    compile 'de.greenrobot:eventbus:2.2.1'
    compile 'se.emilsjolander:stickylistheaders:2.5.1'
    compile 'joda-time:joda-time:2.5'
    compile 'com.makeramen:roundedimageview:1.4.0'
    compile 'javax.inject:javax.inject:1'
    compile 'com.squareup.picasso:picasso:2.3.4'
    compile 'com.googlecode.libphonenumber:libphonenumber:6.3.1'
    compile('com.google.api-client:google-api-client-gson:1.18.0-rc') {
        exclude module: 'httpclient'
    }

    compile 'com.google.android.gms:play-services:6.1.71'
    compile('com.google.api-client:google-api-client:1.17.0-rc') {
        exclude(group: 'xpp3', module: 'xpp3')
        exclude(group: 'org.apache.httpcomponents', module: 'httpclient')
        exclude(group: 'junit', module: 'junit')
        exclude(group: 'com.google.android', module: 'android')
    }
    compile('com.google.api-client:google-api-client-android:1.17.0-rc') {
        exclude(group: 'com.google.android.google-play-services', module: 'google-play-services')
    }
    compile('com.google.http-client:google-http-client-android:1.17.0-rc') {
        exclude(group: 'com.google.android', module: 'android')
    }
    compile 'com.google.guava:guava:18.0'
}

我也有另外一个项目依赖于使用 viewPagerIndicator 库以及几个坛子在我的/ libs文件夹:

I also have another project dependencies to use the viewPagerIndicator library as well as a few jars in my /libs folder:

  • Android的异步HTTP-1.4.6.jar
  • 吉斯-3.0-no_aop.jar
  • jsr305-1.3.9.jar
  • roboguice-2.0.jar

这是我怎么能不删除我的任何所需的依赖解决此问题的任何意见是值得欢迎的!

Any advice on how I could resolve this problem without removing any of my needed dependencies is welcomed !

推荐答案

编辑:这是一个错误与修正的原因。请参见的https://$c$c.google.com/ P /安卓/问题/详细信息?ID = 81804

This is a bug and a fix is due. See https://code.google.com/p/android/issues/detail?id=81804

我有这样的问题太多了,我没有答案。但这里是我可以添加:

I have this problem too, and I don't have an answer. But here's what I can add:

BuildConfig 是作为构建过程的一部分生成的魔法类。出于某种原因,存在一个版本相同的完全限定域名( android.support.multidex.BuildConfig )均 mutildex-1.0.0 multidex-仪表-1.0.0 亚洲遥感协会。

The class BuildConfig is a magic class generated as part of the build process. For some reason, there exists a version with the same fully-qualified name (android.support.multidex.BuildConfig) in both mutildex-1.0.0 and multidex-instrumentation-1.0.0 aars.

我不认为我们做错了什么。我认为这是正对尖端的症状。我提出 bug报告

I don't believe we have done anything wrong. I think this is a symptom of being on the cutting-edge. I raised a bug report.

这篇关于如何解决java.util.zip.ZipException?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆