2017-10-01 69 views
4

我在簽署Ionic android apk時遇到此錯誤,我在Kubuntu 17.04上,使用Ionic 3,安裝了java 8jarsigner error:java.time.DateTimeException:MonthOfYear的值無效(有效值1 - 12):0

的錯誤,我得到:

Enter Passphrase for keystore: 
updating: META-INF/MANIFEST.MF 
adding: META-INF/TEST2.SF 
adding: META-INF/TEST2.RSA 
signing: AndroidManifest.xml 
jarsigner error: java.time.DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 0 

Java版本

$ java -version 
openjdk version "1.8.0_131" 
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.17.04.3-b11) 
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode) 

的javac

$ javac -version 
javac 1.8.0_131 

我安裝了Android Studio並且工作正常,我測試了應用程序源代碼,並且它在仿真器上運行沒有問題。

+0

你是否能夠修復這個問題? – Psest328

回答

2

通過設置與java和javac版本匹配的jarsigner的正確update-alternative,可以在Debian 9上解決此問題。

Java版本

$ java -version 
openjdk version "1.8.0_141" 
OpenJDK Runtime Environment (build 1.8.0_141-8u141-b15-1~deb9u1-b15) 
OpenJDK 64-Bit Server VM (build 25.141-b15, mixed mode) 

的javac版本

$ javac -version 
javac 1.8.0_141 

的jarsigner的版本

$ sudo update-alternatives --get-selections | grep jarsigner 
jarsigner manual /usr/lib/jvm/java-8-openjdk-amd64/bin/jarsigner 

要設置的jarsigner的版本

$ sudo update-alternatives --config jarsigner 
There are 4 choices for the alternative jarsigner (providing /usr/bin/jarsigner). 

    Selection Path            Priority Status 
------------------------------------------------------------ 
    0   /usr/lib/jvm/java-9-openjdk-amd64/bin/jarsigner 1091  auto mode 
    1   /usr/bin/gjarsigner-4.9       1049  manual mode 
    2   /usr/bin/gjarsigner-6        1060  manual mode 
* 3   /usr/lib/jvm/java-8-openjdk-amd64/bin/jarsigner 1081  manual mode 
    4   /usr/lib/jvm/java-9-openjdk-amd64/bin/jarsigner 1091  manual mode