出现这个问题,是我们的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包,或者如果官方有相关的资源的话直接使用官方的依赖资源即可。