ObjectInputStream und EOFException nur unter Android

  • Hallo!




    Ich entwickle gerade an einem Passwortmanager für Android. Ich habe für den Desktop den Manager schon in Java fertig und arbeite damit auch schon.


    Für Android sollte nun auch noch eine App her. Jetzt steh ich jedoch vor einem Problem.




    Ich nutze den ObjectInputStream, um von einem Array aus Bytes die Daten einzulesen. Das ganze sieht dann so in etwa aus:




    Java
    byte[] newBytes = bytes; // z.B. 14000 bytes 
    
    
    StegaInputStream sis = new StegaInputStream(newBytes); // Eigene Klasse, macht nichts magisches außer mit einem byte[] zu arbeiten 
    
    
    ObjectInputStream ois = new ObjectInputStream(sis); // Der ObjectInputStream von Android 
    
    
    int categoryCount = ois.readInt(); // Hier krachts mit einer EOFException




    Ich habe das ganze natürlich erst mal debuggt. Ich weiß, dass im newBytes Array über 14000 bytes enthalten sind. Diese bytes habe ich mir mal ausgeben lassen und es sind 1:1 dieselben, die ich in meiner Desktop Java Anwendung erhalte. Es ist auch 1:1 derselbe Code den ich nutze.


    Beim debuggen habe ich gesehen, dass der ObjectInputStream anders aussieht unter Android als auf dem Desktop. Liegt der Fehler dort?




    Fehlermeldung:





    Jetzt das kuriose an dem ganzen Fall: Mit einer kleineren Datei und dementsprechend weniger bytes im byte-Array funktioniert das ganze... Ich steh echt aufm Schlauch und weiß nicht weiter -.-




    Habt ihr eine Idee?




    Grüße,




    Phenix


    Edit: Hat sich erledigt. Lag dann doch an meinem eigenen Code vom StegaInputStream... Einfach durch ein ByteArrayInputStream ersetzt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!