我正在使用Kryonet作为Android应用程序,并且在所有Android版本上都能完美运行,但3.0版本。我得到以下例外:
E/AndroidRuntime(16861): FATAL EXCEPTION: Thread-30
E/AndroidRuntime(16861): com.esotericsoftware.kryo.KryoException: java.lang.StringIndexOutOfBoundsException: start=0 end=5 data.length=512 index=6 length=5
E/AndroidRuntime(16861): Serialization trace:
E/AndroidRuntime(16861): email (com.momasoft.sudokutournament.network.Network$Login)
E/AndroidRuntime(16861): at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:203)
为什么这只发生在Android 3.0上?有办法解决吗?
谢谢!
答案 0 :(得分:1)
我找到了一个解决方案,调试Kryo库: 我建议从kryo更改以下代码:
com.esotericsoftware.kryo.io.Output.java:307
/***Change this: ***/
value.getBytes(0, charCount, buffer, position);
position += charCount;
/***for this: ***/
byte[] valueB = value.getBytes();
for (int j = 0; j < valueB.length; j++) {
this.writeByte(valueB[j]);
}
getBytes(int start,int end,byte [] elem,int offset)已弃用,并在android 3.0中出现问题。