gpt4 book ai didi

java - 从文件加载数据会导致致命信号 11

转载 作者:行者123 更新时间:2023-12-02 11:16:45 25 4
gpt4 key购买 nike

保存数据没有问题。但是在加载数据时我收到此错误消息

A/libc﹕ Fatal signal 11 (SIGSEGV), code 1, fault addr 0xa3907e44 in tid 2407 (myapplication)

此方法使用 google GSON 库保存数据。该类是适配器的一部分,每次用户按下对话框中的按钮时都会调用该类。

 public int saveListToFile(UserData data, Context context) {

itemsData.add(data);
notifyItemInserted(itemsData.size()-1);

String filename = "colors";
File file = new File(context.getFilesDir(), filename);
try {
BufferedWriter buffWriter = new BufferedWriter(new FileWriter(file, true));
Gson gson = new Gson();
Type type = new TypeToken<List<UserData>>() {}.getType();
String json = gson.toJson(itemsData, type);
buffWriter.append(json);
buffWriter.newLine();
buffWriter.close();
} catch (IOException e) {
return -1;
}
return 0;
}

此方法使用 google GSON 库加载数据。此方法还会导致应用程序崩溃,并出现上面的错误

    public int readCurrentList() {
String filename = "colors";
File file = new File(getFilesDir(), filename);

try {
BufferedReader buffReader = new BufferedReader(new FileReader(file));
String line;
Gson gson = new Gson();
Type type = new TypeToken<List<UserData>>() {}.getType();
while ((line = buffReader.readLine()) != null) {
itemsData.addAll((java.util.Collection<? extends UserData>) gson.fromJson(line, type));
}
buffReader.close();
} catch (IOException e) {
return -1;
}

return 0;
}

最佳答案

我也遇到了和你一样的问题。我花了几分钟才明白:我要求 Gson 将 JSON 转换为抽象对象列表。由于您无法实例化抽象类,这当然是行不通的,尽管看到 SIGSEGV 而不是更好的异常有点令人惊讶。

UserData 是一个抽象类吗?在这种情况下,您要么必须更改为使用另一个类,要么使用 https://stackoverflow.com/a/9106351/467650 中描述的解决方案。 .

关于java - 从文件加载数据会导致致命信号 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com