Сбой проекта Compose при добавлении библиотеки анимации компоновки с переходом общего элемента

Я использую версию Compose Compose-Bom 2023.03.00, и когда я пытаюсь добавить последнюю версию модуля создания анимации (1.7.0-alpha07) с обновлением общих элементов, приложение вылетает при запуске с сообщением об ошибке.

java.lang.NoSuchMethodError: нет статического метода ограниченногоConstraints-xF2OJ5Q$default(Landroidx/compose/ui/unit/Constraints$Companion;IIIIZILjava/lang/Object;)J в классе Landroidx/compose/ui/unit/Constraints$Companion; или его суперклассы (объявление androidx.compose.ui.unit.Constraints$Companion появляется в /data/app/com.xx.xxxx-55o2y0IBA6N3Qr0mj4DgbQ==/base.apk

в androidx.compose.foundation.layout.RowColumnMeasurementHelper.measureWithoutPlacing-EkL-Y(RowColumnMeasurementHelper.kt:187) в androidx.compose.foundation.layout.RowColumnMeasurePolicy.measure-3p2s80s(RowColumnImpl.kt:69) в androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:135) в androidx.compose.foundation.layout.SizeNode.measure-3p2s80s(Size.kt:838)

Простое добавление самой зависимости приводит к сбою (без добавления каких-либо ShareElementsLayout и т. д.).

В примере приложения все работает нормально. Это связано с какими-либо проблемами совместимости с другими библиотеками компоновки? Как я могу найти проблему из-за проблем несовместимости?

Я попытался сопоставить версии зависимостей примера приложения (1.7.0-beta01 также имеет проблемы), но в нашем основном приложении есть и другие библиотеки.

Это также привело к такому же сбою.

Скорее всего, несовместимость с разными версиями компоновки. Поскольку вы не указали, какую зависимость и какую версию вы используете (существуют разные последние версии, например стабильная/альфа), мы не можем сказать точно. Вы можете быть более конкретным?

Leviathan 30.05.2024 08:27

@Левиафан Извините. Обновляется версиями.

Monster Brain 30.05.2024 08:39

Пожалуйста, предоставьте минимально воспроизводимый пример. «Просто добавление зависимости» работает нормально. Что еще нужно сделать, чтобы воспроизвести проблему?

Leviathan 30.05.2024 08:54

@Левиафан, я постараюсь обновить, если возможно.

Monster Brain 30.05.2024 11:14

Если вы используете спецификацию, лучше всего позволить спецификации выбрать для вас правильную версию. Если вам нужны предварительные версии функций, вы можете попробовать — github.com/chrisbanes/compose-bom

Philio 30.05.2024 14:54
1
5
95
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавление реализации зависимости("androidx.compose.material:material:1.7.0-beta01") вместе с compose-animation 1.7.0 beta01, что, похоже, позволяет проекту работать без каких-либо проблем.

Я до сих пор не уверен насчет этой конкретной зависимости. Я попытался добавить библиотеку материалов: в файл bom.

А вот проект Филиппа Лакнера - https://github.com/philipplackner/SharedElementTransitionCompose/blob/master/gradle/libs.versions.toml

использует комбинацию стабильной версии с альфа-версией композиции, которая, похоже, работает нормально. Возможно, в моем проекте есть какие-то дополнительные зависимости, которые усугубляют эту проблему.

Другие вопросы по теме