2011-06-16 32 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