Java jarsigner返回NullPointerException错误
我有一个cordova应用程序,正在使用cmd来构建它,需要签署它的发布apk 首先,我没有使用-tsa选项,因此在运行命令时,它询问pwd,然后在上签名警告:Java jarsigner返回NullPointerException错误,java,android,cordova,jarsigner,jar-signing,Java,Android,Cordova,Jarsigner,Jar Signing,我有一个cordova应用程序,正在使用cmd来构建它,需要签署它的发布apk 首先,我没有使用-tsa选项,因此在运行命令时,它询问pwd,然后在上签名警告: jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore "apk\release\app-release-unsigned.apk" myaliasofkeystore 没有提供-tsa或-tsacert,并且这个jar没有时间戳 因此
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1
-keystore my.keystore "apk\release\app-release-unsigned.apk" myaliasofkeystore
没有提供-tsa或-tsacert,并且这个jar没有时间戳
因此,我添加了选项-tsa timestamp.digicert.com:
jarsigner -tsa timestamp.digicert.com -verbose -sigalg SHA1withRSA -digestalg SHA1
-keystore my.keystore "apk\release\app-release-unsigned.apk" myaliasofkeystore
现在,在运行此命令时,它会要求输入密码
但在这之后会产生这个错误:
jarsigner错误:java.lang.NullPointerException
您不需要添加-tsa。忽略这个关于时间戳的警告 根据: 建议在签名上加盖时间戳,如果签名没有加盖时间戳,则会显示警告。时间戳用于验证用于签名JAR文件的证书在签名时是否有效 这意味着在证书过期后,用户可以确信您在到期日之前已经签署了APK。但根据: 如果你计划在Google Play上发布你的应用程序,你用来签署这些APK的密钥的有效期必须在2033年10月22日之后结束。Google Play强制执行这一要求,以确保用户可以在新版本可用时无缝升级应用程序 如果您的用户在2033年10月23日无法验证证书,我认为这没什么大不了的:)