Live Edit в Android Studio не работает при объявлении PagerState для VerticalPager (HorizontalPager)

Я использую Jetpack compose для своего приложения Android, работаю в Android Studio

Если объявить функцию с pagerState и например Text, а затем вызвать её где то далее

@Composable
fun MyScreen(){
  val pagerState = rememberPagerState { 2 }
  Text(text = "Текст")
}

то после изменения параметра text в коде, приложение падает, при попытки отобразить изменения. Live Edit включен с параметром Push Edits Automatically.

Error: java.lang.IllegalStateException: Unable to find method '$r8$lambda$KDwAFeMt_dj0SbYg7KvtQStln_4()I' in...

Если строку с pagerState удалить - Live Edit начнет работать нормально.

Не имеет значения ни место объявления pagerState, ни параметры конструктора rememberPagerState. Даже если затем создать VerticalPager и туда передать полученный pagerState. Итог одинаковый - error.

При этом само приложение работает нормально, не работает только Live Edit

На developer.android.com никаких ограничений для LiveEdit не нашёл.

Как "подружить" Live Edit и rememberPagerState?

Версии в libs.version.toml:

agp = "8.8.0"
kotlin = "2.1.10"
coreKtx = "1.15.0"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
lifecycleRuntimeKtx = "2.8.7"
activityCompose = "1.10.0"
composeBom = "2025.02.00"

Версия Android Studio: 2024.2.2


Ответы (1 шт):

Автор решения: Vlad Orlinskas

Ошибка выглядит так, будто вы включили обфускацию isMinifyEnabled = true. Тоесть скорее всего вы переключили Build Variant на release вместо debug и забыли об этом. Live edit работает только в debug режиме. Если isMinifyEnabled = true R8 начинает запутывать код и видимо механизм Live Edit не находит функцию в бинарных файлах. Как то так :)

Другие возможные проблемы:

  • Версия Android Studio (у вас свежая)
  • Эмулятор версии api 30 и выше
  • Попробуйте очистить кеш, clean, build
  • Версия compose

Дайте знать о результатах ваших попыток

→ Ссылка