将java应用程序移植到android——是否可以实现可序列化?

将java应用程序移植到android——是否可以实现可序列化?,java,android,persistence,serializable,Java,Android,Persistence,Serializable,我正在尝试将java应用程序移植到android。应用程序使用Serializable存储数据。有一个用户数组列表,每个用户都有各种其他元素(所有这些元素都实现了可序列化)。在java应用程序中,保存所有数据只需调用将序列化用户列表写入文本文件的方法。这似乎不适用于Android 这不是一个文件找不到或IO异常-我已经处理好了 有什么办法可以解决这个问题吗 public boolean loadUsers() { File newFile = new File("sdca

我正在尝试将java应用程序移植到android。应用程序使用Serializable存储数据。有一个用户数组列表,每个用户都有各种其他元素(所有这些元素都实现了可序列化)。在java应用程序中,保存所有数据只需调用将序列化用户列表写入文本文件的方法。这似乎不适用于Android

这不是一个文件找不到或IO异常-我已经处理好了

有什么办法可以解决这个问题吗

public boolean loadUsers()
    {
        File newFile = new File("sdcard/download/users.txt");
        FileInputStream fileIn = null;
    try 
    {
        fileIn = new FileInputStream(newFile);
        ObjectInputStream inStream = new ObjectInputStream(fileIn);
        users = (ArrayList<User>)inStream.readObject();
        fileIn.close();
        return true;
    } 
    catch (FileNotFoundException e) 
    {
        System.err.println("File not found exception...");
    }
    catch (IOException e)
    {
        System.err.println("Error occurred reading the file, aborting...");
    }
    catch (Exception e)
    {
        System.err.println("Unexpected exception...");
    }
    return false;
}
public boolean loadUsers()
{
File newFile=新文件(“sdcard/download/users.txt”);
FileInputStream fileIn=null;
尝试
{
fileIn=newfileinputstream(newFile);
ObjectInputStream inStream=新ObjectInputStream(fileIn);
users=(ArrayList)inStream.readObject();
fileIn.close();
返回true;
} 
catch(filenotfounde异常)
{
System.err.println(“未找到文件异常…”);
}
捕获(IOE异常)
{
System.err.println(“读取文件时出错,正在中止…”);
}
捕获(例外e)
{
System.err.println(“意外异常…”);
}
返回false;
}

我已经弄明白了——我更改了包名,因此无法正确读取旧的序列化文件。否则一切正常。

当您尝试反序列化对象时,ClassNotFoundException很可能意味着您的类路径上没有用于串行流中对象的类。您需要将相关的JAR文件(或其他文件)添加到类路径中。完整的异常消息/stacktrace将告诉您缺少哪个类

(这不是特定于Android的问题。序列化对象流不包含类的字节码。JVM需要有这些字节码才能从流中重新组装可用对象。)


我已经弄明白了——我更改了包名,因此无法正确读取旧的序列化文件


对。当您更改包名称时,该类将成为另一个类。。。就JVM而言。

您可以发布日志、错误和代码吗?或者你只是想让我们猜猜这是密码。意外的例外是什么happens@Zima-这是什么例外?向我们展示stacktrace;i、 e.修改代码以便记录堆栈跟踪…我想我还应该问-在使用android时,我可以使用这种方法存储数据吗?或者这是不可能的?哪一行触发了错误,print stacktrace和e.getMessage()