Parceler - невозможно найти сгенерированный класс Parcelable

РЕДАКТИРОВАТЬ

После очистки и восстановления классы не создаются


Я получил эту ошибку при попытке использовать Parcels.wrap()

Unable to find generated Parcelable class for xyz.xyz.models.reclamation.Reclamation, verify that your class is configured properly and that the Parcelable class xyz.xyz.models.reclamation.Reclamation$$Parcelable is generated by Parceler.

Но Reclamation$$Parcelable Класс создан, и я вижу его содержание.

Вот мой gradle:

compile 'org.parceler:parceler-api:1.1.6'
annotationProcessor 'org.parceler:parceler:1.1.6'

Пытаясь изменить annotationProcessor в apt вызывает ошибку сборки.

Thats Reclamation класс

@Parcel
public class Reclamation {

public Reclamation() {
}

private int reclamationProductID;

private Integer preference;

private String takingDate1;

private String takingDate2;

private int takingAddressID;

private String takingAddressStreet;

private String takingAddressCity;

private String takingAddressZipCode;

private int type;

private String takingAddressCompany;
// + getters setters
}

Это линия, где он падает

ServiceStepFour_.builder().arg(Constants.ARG_RECLAMATION, Parcels.wrap(reclamation)).build();

Я использую его в сочетании с аннотациями Android.

Кто-нибудь знает, почему это происходит?

3 ответа

Решение

Хотя документация говорит, что вы должны поместить эти строки в gradle:

compile 'org.parceler:parceler-api:1.1.6'
annotationProcessor 'org.parceler:parceler:1.1.6'

измените это на:

compile 'org.parceler:parceler-api:1.1.6'
apt 'org.parceler:parceler:1.1.6'

Убедитесь, что все файлы, которые вы хотите использовать, помечены @Parcel,

У меня есть класс A с переменной класса B, и я забыл аннотировать класс B. Вот почему меняется с annotationProcessor в apt дает мне ошибку сборки.

Я знаю, что это поздний ответ, но, возможно, у кого-то еще возникнет эта проблема позже,

Если вы используетеKotlinв вашем коде вы должны использоватьkaptвместоannotationProcessorрешить проблему

      apply plugin: 'kotlin-kapt'

dependencies {
    kapt 'org.parceler:parceler:1.1.12'
}

В моем случае я должен удалить эту строку при переходе от apt к annotationProcessor

apply plugin: 'com.neenbedankt.android-apt'
Другие вопросы по тегам