Jarsigner是一个Java实用程序, 它使用来自密钥库的密钥和证书信息来生成JAR文件的数字签名。密钥库是专用密钥及其关联的X.509证书链的数据库, 这些证书对相应的公用密钥进行身份验证。为了在Play商店中发布应用, 你需要对apk进行签名。
以下命令应足以使用密钥库对APK进行签名:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mykey.keystore myfile.apk alias_name
但是, 某些开发人员(本机应用程序或Cordova之类的混合应用程序)面临以下异常:
jarsigner:无法签名jar:java.util.zip.ZipException:无效的条目压缩大小(预期为463, 但得到465个字节)
解当你的apk已经被签名(使用jarsigner可能会自动签名), zipaligned(使用zipalign)或你尝试生成的APK是在调试模式下生成的, 就会发生此错误。因此, 请确保你提供的是未签名或未zipaligned的apk文件, 并且所有内容均应按预期工作。
如果由于某种原因你无法从地面构建APK(因为你仅收到APK, 并且无法使用源代码编译新的APK), 则可以尝试从命令行使用zip删除当前签名:
zip -d your-file.apk META-INF/\*
请记住, 只要密钥不同, 就可以多次对APK签名。
【使用jarsigner签名APK时出错(无法签名jar无效条目压缩大小)】编码愉快!
推荐阅读
- 如何在Ubuntu中以root身份运行Visual Studio Code(VSCode)
- 如何在Ubuntu 18.04中安装和设置自己的Vanilla Minecraft Server
- 如何使用Java以编程方式打开Android设置
- 如何修复SSH主机密钥验证失败,警告(Ubuntu 18.04中的远程主机标识已更改)
- Boostnote(适用于台式机和移动设备的开源笔记记录应用)
- 一图解密百TB数据分析如何跑进45秒
- flink sql 知其所以然| sourcesink 原理
- Veeam实现MySQL的备份与还原
- Hbase写数据,存数据,读数据的详细过程