android - 仅在 Android 3.0 上异常(exception)

标签 android serialization android-3.0-honeycomb kryo

我正在将 Kryonet 用于 Android 应用程序,并且在除 3.0 版本之外的所有 Android 版本上都能完美运行。我收到以下异常:

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 上?有办法解决吗?

谢谢!

最佳答案

我找到了一个解决方案,调试 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 中出现问题。

关于android - 仅在 Android 3.0 上异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12004180/

相关文章:

Android Chrome 的背景属性表现不佳

android - 为具有特定要求的平板电脑制作应用程序

java - 如何过滤sdcard中带有apk扩展名的文件?

java - 序列化期间不相关的 NullPointerException

android - 删除操作栏图标但保留向上按钮

android - Honeycomb ActionBar & 电话应用程序

带有 Map<String, Object> params (?) 的 Android Volley Post

以自定义对象为键的 hash_map 的 C++ Boost.Serialization 错误

c# - Newtonsoft Json.NET 可以跳过序列化空列表吗?

android - 使用 fragment 重现 Honeycomb GMail UI