我开发了一个使用弹力城堡提供程序生成密钥库的应用程序。在Gingerbread(2.3.3)上一切正常,直到我用ICS更新了我的测试设备。现在,它无法找到充气城堡供应商。 我得到了这个例外:
07-11 12:40:51.317 E / AndroidRuntime(8049):引起:java.lang.NoClassDefFoundError:org.bouncycastle.jce.provider.BouncyCastleProvider
我搜索了这个,并认为在ICS中,已经引入了一个信托商店,我想知道是否仍然可以在ICS中使用充气城堡。我见过一些与充气城堡供应商有关的线程,但无法得到解决方案。请帮忙。
谢谢, 迪帕克
答案 0 :(得分:0)
尝试清除所有项目。
它应该工作。
答案 1 :(得分:0)
您必须在自己的APK中加入BouncyCastle。您不能依赖平台的BouncyCastle版本,因为它可能会在不同版本之间发生变化。
为了方便自己,只需使用专为Android应用程序制作的SpongyCastle包。另请参阅此question about SpongyCastle。
答案 2 :(得分:0)
您不仅需要担心商店类型是BKS而不是JKS,还需要担心不同版本的BKS格式。我不是专家,所以不要将以下内容作为最后一个词,但基于一些实验和some reading,Android,至少在ICS(api 15)中使用了Bouncy Castle提供商的1.46版本。与此同时,最新版本的BounceCastle为1.47,即not backwards compatible
使用正确的格式(BKS)但错误的版本可能会给您错误:
Keystore format problem: Wrong version of key store.
来自Android框架,或来自keytool程序:
java.io.IOException: Wrong version of key store.