- ВКонтакте
- РћРТвЂВВВВВВВВнокласснРСвЂВВВВВВВВРєРСвЂВВВВВВВВ
- РњРѕР№ Р В Р’В Р РЋРЎв„ўР В Р’В Р РЋРІР‚ВВВВВВВВРЎР‚
- Viber
- Skype
- Telegram
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 шт):
Ошибка выглядит так, будто вы включили обфускацию isMinifyEnabled = true
. Тоесть скорее всего вы переключили Build Variant на release вместо debug и забыли об этом. Live edit работает только в debug режиме. Если isMinifyEnabled = true
R8 начинает запутывать код и видимо механизм Live Edit не находит функцию в бинарных файлах. Как то так :)
Другие возможные проблемы:
- Версия Android Studio (у вас свежая)
- Эмулятор версии api 30 и выше
- Попробуйте очистить кеш, clean, build
- Версия compose
Дайте знать о результатах ваших попыток