Android伪造的跨度编码崩溃

时间:2015-07-24 14:31:40

标签: java android

我的Android应用程序出现问题,应用程序崩溃来自主要活动,错误消息是

Caused by: java.lang.RuntimeException: bogus span encoding 17831
    at android.text.TextUtils$1.createFromParcel(TextUtils.java:802)...

这种情况不会出现在所有设备上,因为我可以重现错误在nexus 5 android版本5.1.1上发生,并且还在samsung android版本5.1.1上存在错误。

我研究了很多但没有解决方案。它似乎是一个Android 4.0。*版本问题,但在最新的Android版本中修复。

任何人都可以帮忙找到问题吗?

由于

扩展的错误消息是:

Caused by: java.lang.RuntimeException: bogus span encoding 17831
    at android.text.TextUtils$1.createFromParcel(TextUtils.java:802)
    at android.text.TextUtils$1.createFromParcel(TextUtils.java:679)
    at android.os.Parcel.readCharSequence(Parcel.java:1606)
    at android.os.Parcel.readCharSequenceArray(Parcel.java:1823)
    at android.os.Parcel.readValue(Parcel.java:2185)
    at android.os.Parcel.readArrayMapInternal(Parcel.java:2485)
    at android.os.BaseBundle.unparcel(BaseBundle.java:221)
    at android.os.Bundle.getParcelable(Bundle.java:755)
    at android.app.Activity.onCreate(Activity.java:932)
    at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:255)

3 个答案:

答案 0 :(得分:2)

您的应用中可能无法识别某个角色。

如果你检查android源代码,http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.0_r1/android/text/TextUtils.java

例外情况在public CharSequence createFromParcel(Parcel p) {方法的第715行设置。

检查程序中的跨度以查看是否存在问题。

答案 1 :(得分:0)

是的,我能够找出问题所在。我的应用程序中有一个模型,哪些字段是从json响应中填充的,我的模型实现了可序列化和可分割的接口。我使用SerializedName(“json_field_name”)方法注释了我的模型字段。

除了json字段外,我还在模型中包含了其他字段。在某些时候,当我使用gson库从json中提取数据并且没有我在模型中指定的自定义字段的数据(而不是json字段)时,我收到了此错误。

对我来说,通过从模型中删除json中不存在的对象来解决该问题。

答案 2 :(得分:0)

我也得到同样的错误。我在parcelable的构造函数中错过了一个变量。

你应该在pogo类的构造函数中添加所有变量,这些变量是可以分配的。

 protected your_class_name(Parcel in) {
    var1= in.readString();
    var2= in.readString();
    var3= in.readString();

}

希望有所帮助。

相关问题