Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jarsigner返回NullPointerException错误_Java_Android_Cordova_Jarsigner_Jar Signing - Fatal编程技术网

Java jarsigner返回NullPointerException错误

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没有时间戳 因此

我有一个cordova应用程序,正在使用cmd来构建它,需要签署它的发布apk

首先,我没有使用-tsa选项,因此在运行命令时,它询问pwd,然后在上签名警告:

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日无法验证证书,我认为这没什么大不了的:)