getParcelable вылетает в режиме выпуска, но отлично работает при установке через Android studio

#android #android-fragments #parcelable

#Android #android-фрагменты #parcelable

Вопрос:

 public class Details implements Parcelable {

@Ignore
protected Details(Parcel in) {
    id = in.readLong();
    timestamp = in.readString();
    type = in.readInt();
}


@Ignore
public static final Creator<Details> CREATOR = new Creator<Details>() {
    @Override
    public Details createFromParcel(Parcel source) {
        return new Details(source);
    }

    @Override
    public Details[] newArray(int size) {
        return new Details[size];
    }
};

}
  

Использование пакета для перемещения данных во фрагмент.

 DetailsManagementIncomeFragment fragment = new DetailsManagementIncomeFragment();
Bundle args = new Bundle();
args.putParcelable("details", details);
fragment.setArguments(args);
  

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

 Details details = getArguments().getParcelable("details");
  

Не удалось отладить его в Android Studio, поскольку там он работает нормально.

Комментарии:

1. Пожалуйста, скопируйте сбой (журналы исключений и трассировки стека) из logcat в вопрос.

Ответ №1:

Сбой в выпуске, а не отладка указывает на обфускацию кода, выполняемую ProGaurd. См. https://medium.com/programming-lite/secure-your-codes-by-enabling-proguard-in-android-app-bbbc003144b5 для получения дополнительной информации. Я рекомендую сохранить ваш класс модели в Keep.xml чтобы он не запутался.