最近在編譯andrioid源碼時遇到了如下奇葩的Error,一臉三角函數懵逼 o_O!!
Exception in thread "main" java.security.ProviderException: Could not initialize NSS
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:223)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:103)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:224)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
at sun.security.jca.ProviderList.loadAll(ProviderList.java:282)
at sun.security.jca.ProviderList.removeInvalid(ProviderList.java:299)
at sun.security.jca.Providers.getFullProviderList(Providers.java:173)
at java.security.Security.insertProviderAt(Security.java:360)
at java.security.Security.addProvider(Security.java:407)
at com.android.signapk.SignApk.main(SignApk.java:848)
Caused by: java.io.IOException: NSS initialization failed
at sun.security.pkcs11.Secmod.initialize(Secmod.java:223)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:218)
... 16 more
make[1]: *** [out/target/product/Z018/obj/APPS/framework-res_intermediates/package.apk] 錯誤 1
make[1]: *** 正在等待未完成的任務....
本來編譯是好好的,也不知道怎麼手賤給就弄成這樣了。。。(估計是用了apt-get upgrade....)
So easy,立馬按照常規旅程google唄~
查了一圈後發現悲劇了。。。what! 就沒人遇到過麼?????
額,沒辦法。不能重裝系統,折騰了幾天,終於自己找到了解絕辦法~
特意寫出來,分享給大家。
我的解決路程如下:
1:重新安裝一次Openjdk7,從而避免Openjdk7的NSS配置被我手賤給修改過
(sudo apt-get purge openjdk-7* 刪除後再使用 sudo apt-get install openjdk-7-jdk安裝一次)
2:刪除所有可能和Nss相關的包,刪除方式 sudo apt-get purge libnss*
3:使用sudo apt-get autoremove 刪除不再需要的依賴庫
4:sudo apt-get update更新源
5:
sudo apt-get install libnss3
sudo apt-get install nss-updatedb
sudo apt-get install nss-passwords
sudo apt-get install nsscache
sudo apt-get install libnss3-dbg
sudo apt-get install libnss-db
sudo apt-get install libnss
sudo apt-get install libnss-sss
sudo apt-get install libnss-cache
sudo apt-get install libnss3-dev
sudo apt-get install libnss3
sudo apt-get install libnss3-nssdb
sudo apt-get install libnss3-dev
sudo apt-get install libnss3-1d
sudo apt-get install libnss3-d
安裝如上的包
6:配置好java,確保java和javac -version均爲openjdk7
okay,再實驗,問題完美解決。
希望我的血淚史對大家有所幫助~ 如有任何問題,歡迎交流