2011-06-16 52 views
0

我使用的Eclipse太阳神与Android SDK插件和写作的Android 2.2如何在Android中引用jsse类?

我试图写一个应用程序发送到Web服务的通信进行加密,但错误

它未能在

// wrap with RSA public key 
    ObjectInputStream keyIn = new ObjectInputStream(getResource(getFileLocation(PUBLIC_KEY, localTest))); 
    Key publicKey = (Key) keyIn.readObject(); 
    keyIn.close(); 

与控制台错误...

抛出java.lang.ClassNotFoundException:com.sun.net.ssl.internal.ssl.JSA_RSAPublicKey

这是jsse.jar文件中的一个类。如果我试图在构建路径中包含jsse.jar文件,我会收到一个警告错误并且被编译器抱怨。

“麻烦处理‘的javax /网/ ServerSocketFactory.class’:”

怎样一个参考这个库或正确地引用Android核心的图书馆?这个工程可以作为一个Java应用程序,但在Android模块中不起作用。

回答

0

好的,当我发布我的最后一条评论时,我意识到这个问题可能发生在开发密钥的JRE中。因此,我必须使用JRE 1.5重新创建密钥,因为Android系统至少使用JRE 1.5。这似乎奏效了!

1

很多Android库都是已经存在的库的自定义版本,而且javax对于服务器来说意义更大。

尝试查看加密API,例如BouncyCastles

如果你使用的是Android的旧版本,已经有一点BouncyCastle的在那里,但较新的版本一样,你正在使用,我建议他们进口的一个。

+0

我在构建路径中使用BouncyCastle库。我已经把1.6版本,并尝试1.4版本没有成功。我有包含在classpath中的jdk1.6库(它有一个jsse.jar文件)。该类特定于1.4.2 Java运行时。如果我将它包含在构建路径中,它仍然不起作用。 – iowatiger08 2011-06-16 19:22:10