Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
dwayne
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 27
#1

Parcel Unmarshalling unknown type code 7667826 at offset 248 - Программирование Android

08.06.2016, 11:40. Просмотров 209. Ответов 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, но безрезультатно.
Кто знает как поправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2016, 11:40     Parcel Unmarshalling unknown type code 7667826 at offset 248
Посмотрите здесь:
Android Unknown error (code 14): Could not open database
Ошибка при передаче Parcel Android
Как правильно создать метод offset? Android
Unknown member align_normal of android.widget.gridlayout.alignment Android
Ошибка Genymotion. For an unknown reason, VirtualBox DHCP has not assigned an IP address to virtual device Android
Ошибка "unknown android-api-level-9" при установке admob в eclipse Basic4Android
Как создать qr code Android
Android Java exit code 13
android source code Android
Limit of one JavaVM native code Android
Data type unknown Delphi БД
C++ unknown type name: bool

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,603
Завершенные тесты: 1
08.06.2016, 13:01     Parcel Unmarshalling unknown type code 7667826 at offset 248 #2
передавай лист моделек как json, не мучайся
тут есть пример что подключить и как завернуть-завернуть практически любой объект в строку-json (сообщения 4 и 8)
Парсинг JSON-строки и вывод данных из строки
SeregaJ
9 / 9 / 0
Регистрация: 20.05.2016
Сообщений: 153
10.06.2016, 11:18     Parcel Unmarshalling unknown type code 7667826 at offset 248 #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 реализовали с ошибками.
Yandex
Объявления
10.06.2016, 11:18     Parcel Unmarshalling unknown type code 7667826 at offset 248
Ответ Создать тему
Опции темы

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