Ошибка тирамису в Android 13 с ParcelableAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Ошибка тирамису в Android 13 с Parcelable

Сообщение Гость »


В Android SDK 33 имеется ошибка, приводящая к сбою приложения только в сборке выпуска при использовании нового getParcelableExtra или, что более вероятно, getParcelableArrayListExtra, поскольку именно здесь я и получаю проблему. .

Вызвано: java.lang.NullPointerException: попытка вызвать виртуальный метод «boolean java.lang.Class.isInterface()» по нулевой ссылке на объект Кажется, что для Fragment есть решение, но нет альтернативы для Activity. Существует также система отслеживания ошибок, но, вероятно, она была удалена.

Ниже приведен код, который я использую.

/** * Расширение для получения Parcelable Intent с поддержкой обратной совместимости. * */ inline fun Activity.getParcelableIntent(key: String): T? { вернуть if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) Intent.getParcelableExtra(ключ, T::class.java) еще { @Suppress("УСТАРЕВАНИЕ") намерение.getParcelableExtra(ключ) } } /** * Расширение для получения намерения Parcelable ArrayList с поддержкой обратной совместимости. * */ встроенное развлечение Activity.getParcelableArrayListIntent(key: String): java.util.ArrayList? { вернуть if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) Intent.getParcelableArrayListExtra(ключ, T::class.java) еще { @Suppress("УСТАРЕВАНИЕ") Intent.getParcelableArrayListExtra(ключ) } } В действии

val linkedNews = getParcelableArrayListIntent(INTENT_NEWS_LIST) Несмотря на то, что в отладочной и выпускной версиях используются как настройки минимизации, так и сжатия, я столкнулся с описанной выше проблемой только в выпускной сборке.

buildTypes { отладка { отлаживаемая правда minifyEnabled true ShrinkResources true multiDexEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' firebaseCrashlytics { // Нет необходимости во время разработки, включение этого также предотвращает работу Gradle в автономном режиме маппингфилеуплоаденаблед ложь } SigningConfig SigningConfigs.debug } выпускать { отлаживаемое ложь minifyEnabled true ShrinkResources true multiDexEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' SigningConfig SigningConfigs.release } } Также пробовал добавить аннотацию @Keep в класс данных домена, но все равно безуспешно.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»