我想通過套接字將android.os.bundle格式的數據從Android模擬器發送到PC服務器。現在我可以在PC服務器端從ObjectInputStream獲取對象,但我無法將其轉換爲捆綁格式。如何在普通的java項目中導入android.os.bundle格式?
這裏是我的代碼在PC服務器端的一些關鍵線路:
android.os.Bundle testInfo = new android.os.Bundle();
ObjectInputStream in = new ObjectInputStream(client.getInputStream());
testInfo = (Bundle)in.readObject();
而這正是控制檯演示:
java.lang.RuntimeException: Stub!
at android.os.Bundle.<init>(Bundle.java:5)
at TCPDesktopServer.run(TCPDesktopServer.java:31)
at java.lang.Thread.run(Unknown Source)
我不認爲你可以在「普通」Java SE中輕鬆使用Android類。由於異常表明您現在使用的類是存根,並且不包含真正的實現。真正的實現是Android的一部分,可能並不是完全移植到完整的Java。 –
您應該將數據存儲在Serializable中。 'ObjectOutputStream'可用於所有可能的Java平臺和版本。它專門設計用於網絡數據傳輸等。但它不支持Parcelables,只有'Searializable'對象 – user1643723