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

Parcel Unmarshalling unknown type code 7667826 at offset 248 - Android

Войти
Регистрация
Восстановить пароль
 
dwayne
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 27
08.06.2016, 11:40     Parcel Unmarshalling unknown type code 7667826 at offset 248 #1
При передаче одного значения 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 source code Android
Ошибка при передаче Parcel Android
Как правильно создать метод offset? Android
Как создать qr code Android
C++ unknown type name: bool
SQLite DataBase - почему подчеркивает DataBase db: пишет (DataBase cannot be resolved to a type) Android
Android Ошибка "Description Resource Path Location Type"
Ошибка Genymotion. For an unknown reason, VirtualBox DHCP has not assigned an IP address to virtual device Android
Android Java exit code 13
Android Unknown error (code 14): Could not open database
Android Array type expected; found: 'java.lang.string'
Ошибка Value null at rows of type org.json.JSONObject$1 cannot be converted to JSONArray Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
не спать!
1883 / 1617 / 500
Регистрация: 12.05.2014
Сообщений: 5,841
Завершенные тесты: 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
Ответ Создать тему
Опции темы

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