2017-06-01 63 views
1

我有問題。我在eclipse中使用java編寫代碼來製作java二進制文件(非Android項目)。在Android Studio中加載它之後。類加載項目的.java文件只是不同的包。在eclipse中沒有關於包的任何信息,並且在Android項目中是該應用程序的包。我在類的字節數組中。有什麼問題?類未找到異常Java二進制

碼我用:

//eclipse 
MyClass data = new MyClass(); 
//do some things 
FileOutputStream fos = new FileOutputStream("out.bin"); 
ObjectOutputStream os = new ObjectOutputStream(fos); 
os.writeObject(data); 
os.close(); 

//Android 
ObjectInputStream is = new ObjectInputStream(new FileInputStream(input)); 
MyClass Data = (MyClass) is.readObject(); 
is.close() 

一切都在嘗試,導管和錯誤是"java.lang.ClassNotFoundException".

+0

請顯示完整堆棧跟蹤。 – Andreas

回答

0

出現問題的不同軟件包名稱。將它們全部設置相同。包名稱保存在二進制文件中。

0

我不知道關於Android,但一般來說,Java中,你可以說: 添加的jar文件其中包包含在classpath中,調用以package-id爲前綴的類(它位於java文件的最上面)

1

爲了能夠讀取MyClass對象,包結構和th e類應該在兩端都是相同的(閱讀&寫)。否則,預計有ClassNotFoundException

下面是從Oracle docs

writeObject方法用於寫入的對象流中。任何對象,包括字符串和數組,都是用writeObject寫的。可以將多個對象或基元寫入流中。這些對象必須從相應的ObjectInputstream中以相同的類型和順序讀回。