我在学校使用 eclipse 来使用我的拇指驱动器,并将拇指驱动器带回家。
下次运行程序时我突然遇到这个错误:
Exception in thread "main" java.lang.IllegalArgumentException: Unable to create serializer "com.esotericsoftware.kryo.serializers.FieldSerializer" for class: com.esotericsoftware.kryonet.FrameworkMessage$RegisterTCP
at com.esotericsoftware.kryo.Kryo.newSerializer(Kryo.java:338)
at com.esotericsoftware.kryo.Kryo.newDefaultSerializer(Kryo.java:317)
at com.esotericsoftware.kryo.Kryo.getDefaultSerializer(Kryo.java:310)
at com.esotericsoftware.kryo.Kryo.register(Kryo.java:354)
at com.esotericsoftware.kryonet.KryoSerialization.<init>(KryoSerialization.java:33)
at com.esotericsoftware.kryonet.KryoSerialization.<init>(KryoSerialization.java:25)
at com.esotericsoftware.kryonet.Client.<init>(Client.java:73)
at com.esotericsoftware.kryonet.Client.<init>(Client.java:55)
at test.TestClient.<init>(TestClient.java:32)
at test.TestClient.main(TestClient.java:39)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at com.esotericsoftware.kryo.Kryo.newSerializer(Kryo.java:325)
... 9 more
Caused by: java.lang.IncompatibleClassChangeError: Found interface org.objectweb.asm.MethodVisitor, but class was expected
at com.esotericsoftware.reflectasm.FieldAccess.insertConstructor(FieldAccess.java:144)
at com.esotericsoftware.reflectasm.FieldAccess.get(FieldAccess.java:109)
at com.esotericsoftware.kryo.serializers.FieldSerializer.rebuildCachedFields(FieldSerializer.java:104)
at com.esotericsoftware.kryo.serializers.FieldSerializer.<init>(FieldSerializer.java:50)
... 14 more
我从来没有见过这种错误,我不知道如何修复它。每次我使用 kryonet 库时都会发生这种情况。有可用的解决方案吗?
最佳答案
工作中的一位伙伴也犯了同样的错误。这是由于使用旧的“asm”库引起的。当最新的 Kryo(撰写本文时为 2.18)需要 asm 4.x 时,他正在使用 3.X。更新 asm 库解决了该问题。
关于java - Kryo序列化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11962441/