Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
dwayne
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 27
#1

Parcel Unmarshalling unknown type code 7667826 at offset 248

08.06.2016, 11:40. Просмотров 331. Ответов 2
Метки нет (Все метки)

При передаче одного значения ArrayList из Activity в Activity все проходит хорошо, но при <2 выскакивает ошибка
Java
1
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@52800e38: Unmarshalling unknown type code 7667826 at offset 244
и указывает на строчку в FirstActivity:
Java
1
ArrayList<Model> list = extraList.getParcelableArrayList("arrayList");
Нашел в Сети такое решение:
Java
1
2
3
-keepclassmembers class * implements android.os.Parcelable {
    static ** CREATOR;
}
нужно прописать в proguard-rules.pro. Прописал, но ничего не изменилось. Ошибка продолжает появляться при передаче больше 2 значений в ArrayList.

FirstActivity:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
...
startActivityForResult(new Intent(FirstActivity.this, SecondActivity.class), SELECT_EMPLOYEE);
...
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == SELECT_DATA) {
            if (resultCode == Activity.RESULT_OK) {
                Bundle extraList = data.getExtras();
                ArrayList<Model> list = extraList.getParcelableArrayList("arrayList");
            }
        }
    }
SecondActivity:
Java
1
2
3
4
        Intent intent = new Intent();
        intent.putParcelableArrayListExtra("arrayList", data);
        setResult(RESULT_OK, intent);
        finish();
Model:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
...
    @Override
    public int describeContents() {
        return 0;
    }
 
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeValue(mPhoto);
        dest.writeString(mName);
        dest.writeByte((byte) (mSelected ? 1 : 0));
    }
 
    private EmployeeModel(Parcel in) {
        mPhoto = (Bitmap) in.readValue(Bitmap.class.getClassLoader());
        mName = in.readString();
        mSelected = in.readByte() != 0;
    }
 
    public static final Parcelable.Creator<Model> CREATOR = new Parcelable.Creator<Model>() {
        public Model createFromParcel(Parcel in) {
            return new Model(in);
        }
 
        public Model[] newArray(int size) {
            return new Model[size];
        }
    };
...
Также пробовал менять версию api appcompat-v7, но безрезультатно.
Кто знает как поправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2016, 11:40
Ответы с готовыми решениями:

Unknown error (code 14): Could not open database
Подскажите пожалуйста. в чем ошибка, видно что не открывается БД, но из-за чего...

SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
Переношу БД из assets. При первом запуске ловлю это:...

Ошибка при передаче Parcel
Здраствуйте, пытаюсь через Parcel передать в другую активити обект и получаю...

unknown type name: bool
Здравствуйте. Скачал я Code Blocks с sourceforge. Компилирую программу с 1...

Data type unknown
Доброго времени суток, возникла проблема: при переводе свойства active в true в...

2
Pablito
2713 / 2159 / 732
Регистрация: 12.05.2014
Сообщений: 7,533
Завершенные тесты: 1
08.06.2016, 13:01 #2
передавай лист моделек как json, не мучайся
тут есть пример что подключить и как завернуть-завернуть практически любой объект в строку-json (сообщения 4 и 8)
Парсинг JSON-строки и вывод данных из строки
0
SeregaJ
9 / 9 / 0
Регистрация: 20.05.2016
Сообщений: 153
10.06.2016, 11:18 #3
[QUOTE=dwayne;9247974]
...
private EmployeeModel(Parcel in) {
mPhoto = (Bitmap) in.readValue(Bitmap.class.getClassLoader());
mName = in.readString();
mSelected = in.readByte() != 0;
}

public static final Parcelable.Creator<Model> CREATOR = new Parcelable.Creator<Model>() {
public Model createFromParcel(Parcel in) {
return new Model(in);
}

public Model[] newArray(int size) {
return new Model[size];
}
};
...

Жирное разве не "кривое"? ) Если не ошибаюсь, вы Parcelable реализовали с ошибками.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2016, 11:18

Field <имя_поля> is of an unknown type
Доброго дня всем :). У меня есть три Query, в двух из которых запросы...

Error: unknown type name ‘bool’
Всем здравствуйте, доброго времени суток. Помогите разобраться новичку. Только...

Error unknown type name для объединия
Здравствуйте! Подскажите, пожалуйста, как исправить код. Компилятор выдает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru