我正在更新Android Studio和版本3.4的插件(版本5.1.1的等级)当我尝试构建项目时,出现错误
java.util.zip.ZipException:zip文件为空
我下载了gradle-5.1.1-all.zip并尝试替换了现存的,但是没有成功。
有什么主意导致此错误?
日志
Caused by: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithDexBuilderForDevDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
*****
... 6 more
Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.util.zip.ZipException: zip file is empty
at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
*****
Caused by: com.android.build.api.transform.TransformException: java.util.zip.ZipException: zip file is empty
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.transform(DexArchiveBuilderTransform.java:442)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
... 77 more
Caused by: java.util.zip.ZipException: zip file is empty
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:219)
at java.util.zip.ZipFile.<init>(ZipFile.java:273)
at com.android.tools.r8.ArchiveClassFileProvider.<init>(ArchiveClassFileProvider.java:63)
at com.android.tools.r8.ArchiveClassFileProvider.<init>(ArchiveClassFileProvider.java:50)
at com.android.builder.dexing.r8.CachingArchiveClassFileProvider.<init>(CachingArchiveClassFileProvider.java:32)
at com.android.builder.dexing.r8.ClassFileProviderFactory.createProvider(ClassFileProviderFactory.java:123)
at com.android.builder.dexing.r8.ClassFileProviderFactory.<init>(ClassFileProviderFactory.java:93)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.transform(DexArchiveBuilderTransform.java:363)
构建工具28.0.3
答案 0 :(得分:6)
此问题的原因之一是decommissioning of HTTP services by Gradle。这意味着,如果您的[PROJECT_PATH]/gradle/wrapper/gradle-wrapper.properties
文件具有以下条目:
distributionUrl=http\://services.gradle.org/distributions/gradle-{version}.zip
...然后,此条目将尝试从不再提供服务的服务(基于ZIP
的服务中检索http
文件,并且将静默返回一个空的ZIP
文件;因此,任何试图解压缩该空ZIP
文件的过程都会导致错误。
要解决此问题,只需将您的[PROJECT_PATH]/gradle/wrapper/gradle-wrapper.properties
文件更改为使其distributionUrl
条目即可使用https
:
distributionUrl=https\://services.gradle.org/distributions/gradle-{version}.zip
希望这会有所帮助。
答案 1 :(得分:0)
这听起来像是您的JDK无法正确安装(可能是在更新时)或在更新的Android Studio IDE中正确链接到内部版本的问题。
首先要确保Android Studio中的JDK设置正确,然后再返回JDK本身。尝试在计算机上重新安装JDK。
答案 2 :(得分:0)
尝试重新创建gradle包装器。在我看来,您使用的是旧版本。 我以相同的方式解决了相同的问题。