ZipException:ZIP文件必须在android studio中的gradle build中至少有一个条目

时间:2015-12-13 19:25:45

标签: java android eclipse android-studio gradle

在android studio中导入我的一个古老的eclipse安卓项目。构建失败:

ImmutableJarInput{name=main, file=C:\Dropbox\eclipse_workspaces\_android_studio\monitoringModel\build\intermediates\transforms\mergeJavaRes\release\jars\2\3\main.jar, contentTypes=RESOURCES, scopes=PROJECT,PROJECT_LOCAL_DEPS, status=NOTCHANGED}
ImmutableDirectoryInput{name=release, file=C:\Dropbox\eclipse_workspaces\_android_studio\monitoringModel\build\intermediates\classes\release, contentTypes=CLASSES, scopes=PROJECT, changedFiles={}}
:monitoringModel:transformClassesAndResourcesWithSyncLibJarsForRelease FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':monitoringModel:transformClassesAndResourcesWithSyncLibJarsForRelease'.
> java.util.zip.ZipException: ZIP file must have at least one entry

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':monitoringModel:transformClassesAndResourcesWithSyncLibJarsForRelease'.
...
Caused by: java.lang.RuntimeException: java.util.zip.ZipException: ZIP file must have at least one entry
...
Caused by: java.util.zip.ZipException: ZIP file must have at least one entry

Gradle的新手 - 如何调试?

2 个答案:

答案 0 :(得分:1)

我有一个文件build.gradle

dependencies {
    compile project(':androidHelpers')
    compile files('libs/zip4j-1.3.1-javadoc.jar')
    compile files('libs/zip4j_1.3.1.jar')
}

现在libs/zip4j-1.3.1-javadoc.jar并不打算编译(很明显) - 在eclipse项目文件中排除了第一个错误。

所以我继续发表评论:

dependencies {
    compile project(':androidHelpers')
//    compile files('libs/zip4j-1.3.1-javadoc.jar')
    compile files('libs/zip4j_1.3.1.jar')
}

IDE帮助我告知构建文件已更改,我应该"同步" - 我做了并继续得到同样的例外!所以我认为这是另一个文件,这让我进行了一次追逐 - 我随机谷歌建议解压缩并重新包装等。调试输出的异常或(当然)都没有引用有问题的文件。控制台显示:

Error:java.util.zip.ZipException: error in opening zip file
y be corrupt (this sometimes occurs after a network connection timeout.)
<a href="syncProject">Re-download dependencies and sync project (requires network)</a>
<a href="syncProject">Re-download dependencies and sync project (requires network)</a>

(原文如此 - 第二个bug)让我觉得libs / zip4j_1.3.1.jar有问题。好吧sync还不够 - 我必须 Build > Clean Project 导致gradle(尽管同步)试图编译已缓存到某处的javadoc zip(第三个bug) ):

  

已添加输入文件C:\ Dropbox \ eclipse_workspaces_android_studio \ monitoringModel \ build \ intermediates \ bundles \ release \ libs \ zip4j-1.3.1-javadoc.jar。

三个错误和计数 - 如果有人知道如何避免这些陷阱 - 或者实际上为什么地球上的gradle在同步时保持其缓存请发表评论。

答案 1 :(得分:-1)

我改变了

dependencies {
    compile project(':androidHelpers')
    compile files('libs/zip4j-1.3.1-javadoc.jar')
    compile files('libs/zip4j_1.3.1.jar')
}

  dependencies {
        compile project(':androidHelpers')
        provide files('libs/zip4j-1.3.1-javadoc.jar')
        provide files('libs/zip4j_1.3.1.jar')
    }