java.util.zip.ZipException: zip file is empty

2020-03-11 19:40:56

出现这个问题,是我们的jar包是空的,有可能是复制导致的。可以检查下jar包的大小,如果是0,就要看看咋回事了。

一、错误描述

今天,另外一个小组的开发同事,在接手一个离职同事代码的时候,编译不了,请求我帮忙。看了下错误信息如下所示:




具体描述如下所示:


:ui-widget:mergeDebugJniLibFolders

:ui-widget:transformNativeLibsWithMergeJniLibsForDebug

:ui-widget:transformNativeLibsWithStripDebugSymbolForDebug

:ui-widget:transformNativeLibsWithSyncJniLibsForDebug FAILED


FAILURE: Build failed with an exception.


* What went wrong:

Execution failed for task ':ui-widget:transformNativeLibsWithSyncJniLibsForDebug'.

> java.util.zip.ZipException: zip file is empty


* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.


* Get more help at https://help.gradle.org


BUILD FAILED in 1s

22 actionable tasks: 18 executed, 4 up-to-date

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

二、解决错误

2.1 错误分析

分析错误日志,java.util.zip.ZipException: zip file is empty 应该是某些jar包或者aar包是为空的,然后去看了下他的项目工程。果然在libs目录下有几个aar和jar包。




然后我将此libs目录打开,查看了下,如下所示:




尼玛,这几个jar包和aar包都是0kb,坑货!


2.2 解决错误

看了下,这几个都是官方对应就有的开发库,为什么还要放到本地?为什么还要弄个0kb的空文件呢?


后来将这几个本地的jar包和aar包删除,然后使用官方自带的maven依赖即解决了,正常编译。


将这几个库的官方版本定义好,如下所示:



然后在项目中引用,如下所示:




三、总结

出现 java.util.zip.ZipException: zip file is empty错误,表示你本地使用的jar包或者aar包可能为空,你可以检查下文件大小,如果为空,可以替换本地的jar包或者aar包为正常的jar包或者aar包,或者如果官方有相关的资源的话直接使用官方的依赖资源即可。





  • 2021-01-05 15:41:42

    nodejs修改时区

    ​let date = new Date(); date.setHours(date.getHours() + 8);

  • 2021-01-06 23:09:38

    mp3解码器转PCM合并

    首先,为了混合两个音频文件,您需要操纵它们的原始表示;由于MP3文件被压缩,您无法直接访问信号的原始表示.您需要对压缩的MP3流进行解码,以便“理解”您的音频信号的波形,然后可以混合使用.

  • 2021-01-08 16:47:37

    nodejs如何使用fetch

    node 中没有实现 fetch,你可以使用 node-fetch,使得在 node 中也可以使用 fetch.