RuntimeException: Parcel android.os.Parcel: распаковка кода неизвестного типа при использовании пакета Android

Я получаю следующее сообщение об ошибке:

java.lang.RuntimeException: Parcel android.os.Parcel@41141190: Unmarshalling unknown type code 7602286 at offset 16
at android.os.Parcel.readValue(Parcel.java:1921)
at android.os.Parcel.readMapInternal(Parcel.java:2094)
at android.os.Bundle.unparcel(Bundle.java:223)
at android.os.Bundle.getFloat(Bundle.java:981)

Я отправляю объект в виде сообщения, используя прямой WiFi. Следовательно, я преобразовываю объект в массив байтов при отправке и обратном преобразовании при получении.

Мой объект имеет два поля: одну строку и один пакет Android. При отправке я заполняю строковое поле и помещаю значение с плавающей запятой в пакет Android с помощью ключа.

Я могу получить строковое значение в конце получателя. Ошибка возникает, когда я пытаюсь получить значение с плавающей запятой, присутствующее внутри пакета, с помощью метода getFloat. Что может быть причиной этого?


person NewOne    schedule 06.06.2016    source источник
comment
Удалось ли вам найти решение - у меня тоже такая проблема. Кроме того, вы просмотрели ответы на этот вопрос также на SO?   -  person Farbod Salamat-Zadeh    schedule 23.06.2016


Ответы (1)


Потратив много часов, я нашел решение, что я сделал ошибку в классе Parcelable, я забыл написать и прочитать один из параметров, наконец, я решил проблему, мой код выглядит так:

public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(filepath);
    dest.writeString(filename);
    dest.writeString(fileCount);
    dest.writeInt(index);
}

public YourParcelableClassName(Parcel in){
    filepath = in.readString();
    filename = in.readString();
    fileCount = in.readString();
    index = in.readInt();
}

в данных первого действия передают,

Intent mIntent = new Intent(YourFirstActivity.this,YourSecondActivity.class);
mIntent.putExtra("position",position);
mIntent.putParcelableArrayListExtra("filedata",parcelableArrayList);
startActivity(mIntent);

для получения данных о намерениях во вторую активность,

int Position = getIntent().getIntExtra("position",0);
parcelableArrayList = getIntent().getParcelableArrayListExtra("filedata");
person varotariya vajsi    schedule 23.02.2017