Lib Gdx json 序列化异常和缺少无参数构造函数

2023-12-23

当尝试执行这段代码时:

public void load(String filename) { 
   FileHandle file = Gdx.files.external(filename + ".bim");
   Json json = new Json();      
   String text = file.readString();
   datamap.clear(); 
   datamap = json.fromJson(HashMap.class, text);

我收到错误:

线程“LWJGL 应用程序”中的异常 com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.SerializationException:无法创建类 (缺少无参数构造函数): com.bvo.easyBim.Model.Cursor at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:113) 导致:com.badlogic.gdx.utils.SerializationException:类不能 创建(缺少无参数构造函数):com.bvo.easyBim.Model.Cursor 在 com.badlogic.gdx.utils.Json.newInstance(Json.java:915) 处 com.badlogic.gdx.utils.Json.readValue(Json.java:793) 在 com.badlogic.gdx.utils.Json.readValue(Json.java:803) 在 com.badlogic.gdx.utils.Json.fromJson(Json.java:644) 在 com.bvo.easyBim.View.DataProcessor.load(DataProcessor.java:85) 在 com.bvo.easyBim.View.World.init(World.java:115) 在 com.bvo.easyBim.View.WorldRenderer.buttons(WorldRenderer.java:173) 在 com.bvo.easyBim.View.WorldRenderer.render(WorldRenderer.java:106) 在 com.bvo.easyBim.Screens.AppScreen.render(AppScreen.java:22) 在 com.badlogic.gdx.Game.render(Game.java:46) 在 com.bvo.easyBim.EasyBim.render(EasyBim.java:39) 在 com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:187) 在 com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:110) 引起原因:java.lang.InstantiationException: com.bvo.easyBim.Model.Cursor at java.lang.Class.newInstance0(未知 源)位于 java.lang.Class.newInstance(未知源)位于 com.badlogic.gdx.utils.Json.newInstance(Json.java:901) ... 12 更多

我正在尝试将 json 文件正确保存在另一段代码中后将其转换回数据映射。 (哈希图)但这似乎不起作用。

我猜测他无法读取文本字符串,但我实际上不知道问题是什么。


异常消息“无法创建类(缺少无参数构造函数):com.bvo.easyBim.Model.Cursor”准确描述了问题所在。

Libgdx JSON 代码使用反射来创建对象实例并初始化它们。在你的例子中,必须有一个com.bvo.easyBim.Model.Cursor在保存的 JSON 文件中。因此,在读取该文件时,JSON 代码需要创建一个实例Cursor将数据放入。它假设有一个无参构造函数,可以用来创建一个空的Cursor(否则它无法弄清楚哪个构造函数是合适的)。不过好像没有这样的方法。

您必须添加一个无参数构造函数Cursor,或者您将必须添加自定义序列化程序(请参阅https://code.google.com/p/libgdx/wiki/JsonParsing#Customizing_serialization https://code.google.com/p/libgdx/wiki/JsonParsing#Customizing_serialization)知道如何保存Cursor实例并知道在读取时调用适当的构造函数Cursor早在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lib Gdx json 序列化异常和缺少无参数构造函数 的相关文章

随机推荐