【问题标题】:Android Studios Serialization. Attempt to get length of null arrayAndroid Studio 序列化。尝试获取空数组的长度
【发布时间】:2023-04-05 10:19:02
【问题描述】:

好的,所以在我的项目中,我试图通过写入名为 data 的文件夹来序列化国际象棋游戏。我在eclipse中做了这个,它能够工作。但是,当我将它带入 android studios 时,我得到了试图获取空数组长度的错误。这是我的方法:

public static void writeData() throws IOException {

    System.out.println("WRiting data");
    File folder = new File("data" + File.separator);
    folder.mkdir();
    String[] directories = folder.list(); 

    for (String name : directories) { //error here
        File ff = new File(folder + File.separator + name);
        if (ff.isDirectory()) {
            deleteDirectory(ff);
        }
    }

    //add all user data
    for (game u : info.games) {

        File f = new File("data" + File.separator + u.name);            //make a file with user name

        f.mkdir(); //make the file a directory

        ObjectOutputStream oos = new ObjectOutputStream(
                new FileOutputStream(f + File.separator + "game-state"));

        //create stream with file name at the end

        oos.writeObject(u);

        //write objects
        oos.close();
    }

}

另外,我查看了之前的问题并更改了清单文件以允许写入和读取数据的权限。

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

当我读取数据时应用程序不会崩溃。但是,当我尝试写入数据时它会崩溃。在这里发疯。感谢您的帮助。

【问题讨论】:

  • 我的清单更改是 跨度>

标签: android serialization permissions


【解决方案1】:

这可能是由于marshmellow权限请求,你必须在运行时调用权限请求。 通过链接 https://developer.android.com/training/permissions/requesting.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 2018-04-14
    相关资源
    最近更新 更多