Как вызвать Composable в другом модуле из MainActivity ⇐ Android
-
Гость
Как вызвать Composable в другом модуле из MainActivity
У меня есть простое приложение с модулем библиотеки Android. Я учусь вызывать composable между модулями в Jetpack Compose. Как ты делаешь это? Вот MainActivity из модуля приложения:
класс MainActivity : ComponentActivity() { переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MyApplicationTheme { // Поверхностный контейнер, использующий цвет фона из темы Поверхность (модификатор = Modifier.fillMaxSize (), цвет = MaterialTheme.colorScheme.background) { Столбец (модификатор = Modifier.fillMaxSize()) { Приветствие («Андроид») SecondScreen.Asnackbar() } } } } } } @Композитный веселое приветствие (имя: String, модификатор: Модификатор = Модификатор) { Текст( text = "Привет, $name!", модификатор = модификатор ) }
а вот компоновка из файла в другом модуле библиотеки Android:
импортировать androidx.compose.material3.Snackbar импортировать androidx.compose.material3.Text импортировать androidx.compose.runtime.Composable @Композитный веселый закусочный бар(){ Закусочная { Text("это закусочная") } }
Проект скомпилировался нормально, но при запуске на эмуляторе сразу же вылетел с этой ошибкой java.lang.NoSuchMethodError: нет виртуального метода Asnackbar(Landroidx/compose/runtime/Composer;I)V в классе Lcom/example/ Second_screen/SecondScreen; или его суперклассы (объявление com.example. Second_screen.SecondScreen появляется в /data/data/com.example.myapplication/code_cache/.overlay/base.apk/classes2.dex)
ПРИМЕЧАНИЕ: я нашел ответ. Именно здесь. Можем ли мы создать составную функцию JetpackCompose в другой библиотеке?
Поэтому все, что мне нужно сделать, это добавить эти строки в мой модуль второго экрана: buildFeatures { сочинять правду } composeOptions { kotlinCompilerExtensionVersion '1.5.1'
У меня есть простое приложение с модулем библиотеки Android. Я учусь вызывать composable между модулями в Jetpack Compose. Как ты делаешь это? Вот MainActivity из модуля приложения:
класс MainActivity : ComponentActivity() { переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MyApplicationTheme { // Поверхностный контейнер, использующий цвет фона из темы Поверхность (модификатор = Modifier.fillMaxSize (), цвет = MaterialTheme.colorScheme.background) { Столбец (модификатор = Modifier.fillMaxSize()) { Приветствие («Андроид») SecondScreen.Asnackbar() } } } } } } @Композитный веселое приветствие (имя: String, модификатор: Модификатор = Модификатор) { Текст( text = "Привет, $name!", модификатор = модификатор ) }
а вот компоновка из файла в другом модуле библиотеки Android:
импортировать androidx.compose.material3.Snackbar импортировать androidx.compose.material3.Text импортировать androidx.compose.runtime.Composable @Композитный веселый закусочный бар(){ Закусочная { Text("это закусочная") } }
Проект скомпилировался нормально, но при запуске на эмуляторе сразу же вылетел с этой ошибкой java.lang.NoSuchMethodError: нет виртуального метода Asnackbar(Landroidx/compose/runtime/Composer;I)V в классе Lcom/example/ Second_screen/SecondScreen; или его суперклассы (объявление com.example. Second_screen.SecondScreen появляется в /data/data/com.example.myapplication/code_cache/.overlay/base.apk/classes2.dex)
ПРИМЕЧАНИЕ: я нашел ответ. Именно здесь. Можем ли мы создать составную функцию JetpackCompose в другой библиотеке?
Поэтому все, что мне нужно сделать, это добавить эти строки в мой модуль второго экрана: buildFeatures { сочинять правду } composeOptions { kotlinCompilerExtensionVersion '1.5.1'
Мобильная версия