首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“未找到中央目录记录的ZIP端”使用Apksigner出错

“未找到中央目录记录的ZIP端”使用Apksigner出错
EN

Stack Overflow用户
提问于 2021-02-04 12:31:54
回答 1查看 804关注 0票数 1

我使用的是android构建工具附带的apksigner二进制(29.0.2)。首先,我将一个未经签名的apk文件上传到Artifactory,作为CI/CD过程的一部分。在签名阶段,我从Artifactory下载apk (这是成功的),并尝试使用apksigner这样的方式对文件进行签名:

代码语言:javascript
复制
COMMAND: '/yarrak/sdk/android/build-tools/29.0.2/apksigner' sign --ks /yarrak/tool/gradle/jks/TST.jks --ks-pass "pass:siktasak123" --out /yarrak/var/data/build-dir/MOBO-JOB1/myfile-signed-r.apk /yarrak/var/data/build-dir/MOBO-JOB1/myfile-signed.apk  

值得一提的是:

我创建输出apk文件并将文件权限设置为775,然后在Linux中工作的environment

  • The apk文件从机器上传到Artifactory。

下面的命令引发错误:

线程"main“中的com.android.apksig.ApkSigner.sign(ApkSigner.java:217)异常:格式错误的APK:不是com.android.apksig.ApkSigner.sign(ApkSigner.java:193) at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:340) at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:83)中由:com.android.apksig.zip.ZipFormatException引起的ZIP存档:在com.android.apksig.apk.ApkUtils.findZipSections(ApkUtils.java:57) at com.android.apksig.ApkSigner.sign(ApkSigner.java:215)上找不到的中央目录记录的压缩端.3

可能是什么原因?我想,当从MacOS机器上传到Artifactory时,未签名的apk文件可能被破坏了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-26 12:17:24

我已经解决了这个问题。这个问题不是由Artifactory上传造成的。

在我的开发场景中,除了.apk文件之外,还会在原始文件(apk)之后上传一个.json文件,并且该.json文件是一个类似定义的文件,不包含任何二进制文件。在上传阶段,我错误地命名了两个相同的文件(只是小心变量和作用域)。当然,在签名阶段,最后一个文件覆盖我将要签名的文件,而我的apksigner二进制文件不能对伪装成存档文件的.json文件进行签名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66045693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档