私は何時間もこれを理解しようとしてきました。 私はこのメソッドに渡しているオブジェクトである 'ハッシュテーブル'をシリアル化しています 'saveDataToDisk(Object o)'、これを通常のJavaプロジェクトでテストし、 'toByteArray()'を正しく実行しました。 Androidでは、いつでもByteArray()にヒットするたびにキャッチに移動します...任意のアイデアですか?前もって感謝します。なぜ "toByteArray()"が実行されませんか?
public static byte[] saveDataToDisk(Object o)
{
// Storing the data into byte streams.
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try
{
ObjectOutputStream out = new ObjectOutputStream(bos);
out.writeObject(o);
out.close();
// Get the bytes of the serialized object
byte[] buf = bos.toByteArray();
return buf;
}
catch (IOException ioe)
{
return null;
}
}
例外はありますか? – Robotnik
例外はありません。私は 'ioe.printStackTrace()'を実行しようとするとNULLを返しますが、何も表示されません。私はこれを解決するように見えない場合、誰かがこれに代替を持っていますか? >:P –
catch文の中にブレークポイントを置くと、ioe変数を検査できるはずです。上に置き、キャッチに当たるまでステップオーバーします。 編集:また、そこにいる間、あなたのbos変数のサイズを確認してください。データがある場合は> 0 – Robotnik