0

我开发了一个使用充气城堡提供程序来生成密钥库的应用程序。在 Gingerbread(2.3.3)上一切正常,直到我用 ICS 更新了我的测试设备。现在,它无法找到充气城堡提供者。我得到了这个例外:

07-11 12:40:51.317 E/AndroidRuntime(8049):引起:java.lang.NoClassDefFoundError:org.bouncycastle.jce.provider.BouncyCastleProvider

我对此进行了搜索,并发现在 ICS 中引入了信任库,我想知道充气城堡是否仍然可以在 ICS 中使用。我已经看到一些与充气城堡提供者相关的线程,但无法获得解决方案。请帮忙。

谢谢,迪帕克

4

3 回答 3

0

您必须在自己的 APK 中包含 BouncyCastle。您不能依赖该平台的 BouncyCastle 版本,因为它可能会在不同版本之间发生变化。

为了让自己更轻松,只需使用专为 Android 应用程序制作的SpongyCastle包。另请参阅有关 SpongyCastle的这个问题。

于 2012-09-28T04:50:37.713 回答
0

尝试清理所有项目。

它应该工作。

于 2012-07-13T04:03:14.213 回答
0

您不仅需要担心存储类型是 BKS 而不是 JKS,还需要担心 BKS 格式的不同版本。我不是专家,所以不要把以下作为硬道理,但基于一些实验和一些阅读,Android,至少在 ICS (api 15) 中使用了 Bouncy Castle 提供程序的 1.46 版本。同时 BounceCastle 的最新版本是 1.47,不向后兼容

使用正确的格式 (BKS) 但错误的版本可能会给您错误:

Keystore format problem: Wrong version of key store.

来自 Android 框架,或来自 keytool 程序:

java.io.IOException: Wrong version of key store.
于 2013-01-02T04:31:36.163 回答